U3D笔记

基础:--------------

场景文件:Scenes

运行测试游戏快捷键:Ctrl+P

三维物体:3D Object

俩个概念:

所有看到的物体在Unity中被叫做游戏对象(GameObject),例如,球体,摄像机,光源

每一个游戏对象由不同的组件(Component)构成,每个组件会提供不同的功能,比如Transform定义了物体在场景中的位置

MeshRenderer/三角网渲染器,用来渲染三维物体

可以导入fbx模型,可以在Sketchfab,turbosquid,上找到免费高质量的三维模型

快捷键:QWER


开发:---------------

Transform

左侧面板中,可以将1个对象拖入到另一个对象的子节点,这样会随着父节点移动缩放

MeshRenderer

重要属性:Materials,材质,决定了外观,可以自己新建材质,拖入到物体中赋值

添加其他组件,Add Component

例如添加Rigidbody/刚体,让游戏对象参与物理引擎的计算,物体会收到重力下降碰撞反弹等等

可以用Animator来控制管理角色的动画,AudioSource给游戏对象添加声音,使用Canvas绘制二维用户的界面,使用ParticleSystem来产生粒子效果等等

摄像机Camera,展示了游戏中玩家的视角,除了可以用之前的方法修改摄像机的位置,旋转角之外,还可以修改摄像机清除背景时用的颜色,摄像机的投影类型视角大小等等,

同时也可以通过给摄像机添加 Post-process Layer组件,配合场景中的Post-process Volumes来给镜头添加后期处理的特效

需要动态操作(用户界面/网络控制/玩家控制/按键响应/事件响应等),需要编写脚本:

选择对象-添加组件- New Script

双击脚本名称可以在IDE中打开并编辑它

脚本都继承于MonoBehavior

默认定义了2个函数,

Update()  每帧都会被调起

Start()  只会在开始的时候被调用一次

Debug.log("输出调试信息");

测试:在Update()中写入代码:

Rigidbody rb;
//参数设置为Public,这样可以在编辑器中实时修改它们
public float acceleration = 1;
public float rotateSpeed = 200;
void Start()
{
    rb = GetComponent<Rigidbody>();//获取RigidBody组件
}
void Update()
{
    if(Input.getKey(KeyCode.W))//调用Input.GetKey去判断这一帧中键盘上的W键是否被按下
    {
        rb.AddForce(transform.forward * acceleration);//这里用到RigidBody/刚体,调用它的AddForce()来添加一个作用力,这个作用力的方向是物体面朝的方向,乘以这里顶一个一个参数加速度
    }
    if(Input.getKey(KeyCode.A))
    {
        rb.Rotate(0,-rotateSpeed * Time.deltaTime,0,Space.Self);//我们调用Time.deltaTime获取上一帧与这一帧的时间差
    }
    else if(Input.getKey(KeyCode.D))
    {
         rb.Rotate(0,rotateSpeed * Time.deltaTime,0,Space.Self);
    }
}

打包/构建:------------------

快捷键Ctrl+Shift+B

上方选择进入游戏后的第一个场景,下方左下角选择打包的平台


参考链接:

Unity 10分钟快速入门 #U3D #Unity3D

turbosquid 模型下载


相关推荐

网友评论(0)