码迷,mamicode.com
首页 > 编程语言 > 详细

Unity学习-碰撞检测(七)

时间:2015-02-02 17:34:19      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

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学习-碰撞检测(七)

标签:

原文地址:http://www.cnblogs.com/2star/p/4268211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!