【Unity3D游戏开发】—— 统制模型的旋转与碰撞
【Unity3D游戏开发】—— 控制模型的旋转与碰撞



这里实现两个Cube模型,使用脚本接受键盘按键来实现模型的旋转。
创建一个C#脚本,相应键盘按键需要用到Input.GetKey()函数,其只能在PC上使用,因为Android和IOS上并没有键盘按键。
using UnityEngine; using System.Collections; public class csharp0 : MonoBehaviour { //移动速度 public float move_speed = 5; //旋转速度 public float rotate_speed = 20; // Use this for initialization void Start () { } // Update is called once per frame void Update () { //按下W控制向前移动 if (Input.GetKey(KeyCode.W)) { transform.Translate(Vector3.forward * Time.deltaTime * move_speed); } //按下S控制向后移动 else if (Input.GetKey(KeyCode.S)) { transform.Translate(Vector3.forward * Time.deltaTime * -move_speed); } //按下A控制向左移动 if (Input.GetKey(KeyCode.A)) { transform.Translate(Vector3.right * Time.deltaTime * -move_speed); } //按下D控制向右移动 else if (Input.GetKey(KeyCode.D)) { transform.Translate(Vector3.right * Time.deltaTime * move_speed); } //按下Q控制向左旋转 if (Input.GetKey(KeyCode.Q)) { transform.Rotate(Vector3.up * Time.deltaTime * -rotate_speed); } //按下E控制向右旋转 else if(Input.GetKey(KeyCode.E)) { transform.Rotate(Vector3.up * Time.deltaTime * rotate_speed); } } }
然后将脚本拖入需要使用脚本的模型上,然后可以看见模型右边出现了脚本信息
在脚本中设置的Public变了默认是显示在Inspector视图中的,这样我们可以再游戏运行时进行调整。
点击运行就可以利用键盘控制物体的移动了,不过会发现主摄像机无法跟随,还有会穿越山脉。
这里点击Import Package -> Script我们可以添加自带的摄像机跟随脚本,然后选中摄像机点击Compone -> Camera-Contorl ->Smoot Follow,然后在Inspector视图中可以看见如下信息
点击第二行后面的小圈就可以选择摄像机跟随的对象。
Distance 摄像机离对象的距离
Height 摄像机离地面的高度
可以再运行时调节来感受一下。
控制物体的碰撞可以使用Compone -> Physcis -> Rigidbody 刚体组件来设置物体的物理模拟。具体参数将鼠标放在参数上面就会有详细说明。
再次运行,就可以发现可以与山脉和其他物体碰撞了, 前后左右完全OK,速度大了还会飞天上去。
Unity自带的物理引擎非常强大,我们可以实现许多好玩的功能。