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



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