Unity 碰撞检测,触发检测,方向键控制物体移动

以下代码主要来自siki老师的 Roll A Ball 游戏,在此基础上添加一些注释,以备后用。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Player : MonoBehaviour {

    private Rigidbody rd;
    public int force = 5;
    public Text txt;
    private int score = 0;
    public GameObject winTxt;

	// Use this for initialization
	void Start () {
        rd = GetComponent<Rigidbody>();
	}
	
	// Update is called once per frame
	void Update () {
        float h = Input.GetAxis("Horizontal");  //左右的力
        float v = Input.GetAxis("Vertical");    //前后的力
        rd.AddForce(new Vector3(h, 0, v) * force);
	}

    //碰撞检测  有物理效果
    void OnCollisionEnter(Collision collision)
    {
        //collision.collider //获取碰撞到的游戏物体身上的Collider组件
        //string name = collision.collider.name; //获取碰撞到的游戏物体名字
        //print(name);
        if (collision.collider.tag == "PickUp")
        {
            Destroy(collision.collider.gameObject);
        }
    }

    //触发检测  没有物理效果  游戏主角进入门的时候可以用
    void OnTriggerEnter(Collider collider)
    {
        if (collider.tag == "PickUp")
        {
            score++;
            txt.text = score.ToString();
            if (score==9)
            {
                winTxt.SetActive(true);
            }

            Destroy(collider.gameObject);
        }
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章