unity 3D学习日记:创建一个小场景并编写简单C#移动脚本

学习Unity 3D第一周,完成的目标一是创建一个小场景,用角色控制器在场景里行走;二是编写一个简单的移动脚本。

一、创建一个小场景,用角色控制器在场景里行走

1.先安装Unity 3D 5.3版本。然后新建一个Project,默认创建了一个scene,只需在保存一下就可以了;

2.首先拖拽一个cube或者sphere,然后练习整体拖拽(Q)、根据x y z 轴方向进行拖拽(W)、旋转(E)、放大缩小(R);

3.导入一些Unity 3D自有的资源或者在商店下载,直接导入然后拖拽就可以使用了。这样可以让我们的场景好看一些。其中要了解perfabs为预设好的一些组合,可以拖拽直接使用;models为模型,还需要渲染;scripts为脚本;material为材质;我在到一个资源包后报错:System.IO.File does not contain a definition for 'ReadAuBytes',类似的错误只要在File Build Settings不选择web player就可以了。

4.角色控制器可以使用unity自带的资源,导入包character即可。我们便可拖拽第一视角和第三视角的人物模型,然后按WASD和控制就可以控制了。需要注意的是人物模型的y一定要大于0,保证人物模型在地面上,否则一开始运行,模型就会自动下沉。

5.我们添加的cube其实就是一个gameobject添加了Mesh Filter。我们可以自己创建场景的组件,具体的步骤是:添加一个gameobject → 添加组件Mesh Filter来添加形状 → 添加Mesh Renderer → 添加materials → 添加贴图(5.3版本点击Albedo前圆点就可以进行选择啦)

按照以上的步骤就可以创建一个小场景,用角色控制器在场景里行走,只是镜头是固定的,不能跟随人物模型进行转换。unity也提供了镜头的脚本文件,我现在只学习了两个。一个是Mouse Orbit:鼠标跟随。摄像机对象跟随鼠标进行移动,就像是LOL里不锁定视角一样;下一个就是SmoothFollow:平滑跟随,摄像机一直跟随父对象移动,就像LOL锁定了视角。接下来我学习的脚本是控制一个perfabs进行移动,就加了SmoothFollow,把脚本拽到camera上,然后对象给perfabs就可以啦!

二、编写一个简单的移动脚本

在这里我只是告诉大家这个脚本的基本思路。

1.创建对象 

GameObject obj;

2.在start函数里将对象和perfabs结合一下:

obj = this.gameObject;

3.在update函数添加if语句,接受从键盘上点击的按钮,如果是W或者S就平移就可以啦,主要的语句是(speed需要自己public float一下,W是forward ,S是back):

obj.transform.Translate(Vector3 * forward *Time.deltaTime * speed);

4.如果点击的是A或者D那么就要发生旋转,主要的语句是(y也需自己定义,代表着旋转的角度,如果是A就会发生负旋转,D就是正旋转):

y= -Time.deltaTime *speed;

5.接下来就要else了,具体语句是:

y=0;
obj.transform.Rotate(new Vector3(0,y,0));
obj.transform.rotation = Quaternion.Slerp(obj.transform.rotation,rotateTo,Time.deltaTime);

这个脚本中有几个函数,像平移函数,旋转,时间增量都需要自己去研究学习,目前我还没有学习的非常透彻,但是我背下来啦~~~~

你可能感兴趣的:(unity,3D)