首页 > 代码库 > Unity学习-碰撞检测(七)

Unity学习-碰撞检测(七)

Unity脚本说明

Unity支持语言:
C#(主流),JavaScript,Boo
创建脚本:
【Assets-Create-C# Script】

学习案例

布置场景:
添加一个Plane,3个Cube,一个Directional light
技术分享
设置启动项(Preferences)
导入UnityVS,方便用vs开发unity
【Assets-Import Package-Visual Studio 2014 Tools】
写一个让方块移动的脚本(Move)
【Assets-Create-C# Script】
修改脚本用VS打开
【Edit-Preferences-External Tools-选择VS2013】
技术分享 
编写脚本
双击Move脚本,然后打开,写上脚本
编写方块移动脚步(Move.cs)
//注意Move的名字是否与你新建脚本名字相同public class Move : MonoBehaviour{    //类似一个面向组件的接口,如果是public的话,在组件中可以看到一个叫go的属性    private GameObject go;    //初始化程序    void Start ()    {        //找到 名字叫Cube4的 游戏对象        go = GameObject.Find("Cube4");        //设置游戏对象的颜色,在渲染组件中        go.renderer.material.color = Color.red;    }    // 游戏运行时一帧一帧的,每一帧都要调用Update()方法    void Update () {        //在每一帧当中 都时时的检查 有没有按下键盘        if (Input.GetKey(KeyCode.A))        {            //Time.deltaTime是帧的单位,这里是5个单位            //通过查看坐标系,确定x,y,z对应的上下左右            //Space.Self自身坐标系            go.transform.Translate(0, 0, 5*Time.deltaTime, Space.Self);        }        if (Input.GetKey(KeyCode.D))        {            go.transform.Translate(0, 0, -5*Time.deltaTime, Space.Self);        }        if (Input.GetKey(KeyCode.S))        {            go.transform.Translate(-5*Time.deltaTime,0,0,Space.Self);        }        if (Input.GetKey(KeyCode.W))        {            go.transform.Translate(5*Time.deltaTime,0,0,Space.Self);        }    }}
将该脚本拉到Camera中,在Inspector中可以看到
技术分享
此时,运行游戏,可以通过w,a,s,d进行上下左右移动了,但是这个游戏对象撞在一起回重叠,我们想要的效果是可以碰撞。
设置刚体(Rigidbody)
【在Hierarchy中选择Cube,在工具栏中Component-Physics-Rigidbody】四个Cube都要设置
编写碰撞检测脚步(PZJC.cs)
技术分享
代码如下
public class PZJC : MonoBehaviour {    // Use this for initialization    void Start () {        }        // Update is called once per frame    void Update () {        }    /// <summary>    /// 每次游戏对象发生碰撞的时候 都会执行此方法    /// </summary>    /// <param name="co">可以获得被撞的游戏对象</param>    void OnCollisionEnter(Collision co)    {        co.gameObject.renderer.material.color = Color.blue;    }}
因为操作的Cube4,那么就把该脚本拉给Cube4
技术分享
此时运行游戏,操作
因为Cube4最先碰撞到的是Plane,所有Plane会变色

Unity学习-碰撞检测(七)