【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);
        }
	}

}

然后将脚本拖入需要使用脚本的模型上,然后可以看见模型右边出现了脚本信息
【Unity3D游戏开发】—— 统制模型的旋转与碰撞

在脚本中设置的Public变了默认是显示在Inspector视图中的,这样我们可以再游戏运行时进行调整。

点击运行就可以利用键盘控制物体的移动了,不过会发现主摄像机无法跟随,还有会穿越山脉。

这里点击Import Package -> Script我们可以添加自带的摄像机跟随脚本,然后选中摄像机点击Compone -> Camera-Contorl ->Smoot Follow,然后在Inspector视图中可以看见如下信息
【Unity3D游戏开发】—— 统制模型的旋转与碰撞

点击第二行后面的小圈就可以选择摄像机跟随的对象。
Distance   摄像机离对象的距离
Height    摄像机离地面的高度
可以再运行时调节来感受一下。

控制物体的碰撞可以使用Compone -> Physcis -> Rigidbody 刚体组件来设置物体的物理模拟。具体参数将鼠标放在参数上面就会有详细说明。

再次运行,就可以发现可以与山脉和其他物体碰撞了, 前后左右完全OK,速度大了还会飞天上去。
【Unity3D游戏开发】—— 统制模型的旋转与碰撞  【Unity3D游戏开发】—— 统制模型的旋转与碰撞

Unity自带的物理引擎非常强大,我们可以实现许多好玩的功能。