1. 程式人生 > >Unity做的一個小球遊戲筆記

Unity做的一個小球遊戲筆記

遊戲中的視角:
public class FollowTarget : MonoBehaviour {
    public Transform playerTransfrom;
    private Vector3 offset;
       // Use this for initialization
       void Start () {
        offset = transform.position - playerTransfrom.position;  //偏移位置等於相機位置-player位置    只調用一次

       }

       // Update is called once per frame
       void Update () {
        transform.position = playerTransfrom.position + offset;  // 相機位置=player位置+偏移位置   一直呼叫。
       }
}

觸發檢測:



測試分數:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//加一行這個

public class Player : MonoBehaviour {
    private Rigidbody rd;
    public int force = 5;
    private int score=0; //分數私有變數
    public Text text;  //分數顯示UI
    public GameObject winText;//勝利顯示
       // 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)
    {
        if (collision.collider.tag == "PickUp")
        {
            Destroy(collision.collider.gameObject);
        }
    }
    void OnTriggerEnter(Collider collider)
    {
        if(collider.tag == "PickUp"){
            score++;
            text.text = score.ToString(); //分數賦值給text的text。
            if (score == 12)
            {
                winText.SetActive(true);//如果分數達到12分,啟用winText.
            }
            Destroy(collider.gameObject);
        }
    }
}

物塊旋轉:

public class PickUp : MonoBehaviour {
       // Use this for initialization
       void Start () {

       }
       void Update () {
        transform.Rotate(new Vector3(0, 1, 0));//Vector3是三維向量,括號裡分別是X,Y,Z,括號裡應該是新建了一個方向和Y軸一樣的向量,這個的意思控制這個Pickup一直繞Y軸旋轉
       }
}

鍵盤控制

public class Player : MonoBehaviour {
    private Rigidbody rd;//rigidbody是剛體,是物體的一種屬性 

   public int force = 5;
       // 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");//獲取鍵盤輸入,GetAxis函式下面詳解
        rd.AddForce(new Vector3(h, 0, v)*force);//在x,y平面運動

       }

Input.GetAxis()函式:它能夠返回來自鍵盤、控制器或滑鼠平滑的並且可以設定的輸入結果。"Horizontal" 和"Vertical" 對應於控制桿、A、W、S、D和箭頭鍵(方向鍵)。