以下代碼主要來自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);
}
}
}