1. 程式人生 > >Unity3D小例項(1) 20170916

Unity3D小例項(1) 20170916

本例項是一個簡單的通過控制WASD和上下左右方向鍵分別控制吃小球的小遊戲

一:構建場景
1.建立一個Cube,通過設定它的Scale屬性設定它的長寬高。
2.在它下面建立四個子物件,設定他們的 transform屬性 調整的合適的位置當做圍牆。
3.建立一個food遊戲物件,把它設定為預製件(Prefab),設定食物的規格,copy出許多food物件隨機放在cube上。
(特別說明)Prefab:當遊戲需要很多一樣的遊戲物件時,可以設定為預製件。通過改變一個預製件的屬性,其他屬於這個預製件的遊戲物件也會一起改變。
4.建立2個遊戲物件 ball1 和 ball2 建立剛體。

通過對Input裡的Horizontal和Vertical還有自己建立的BallH,BallV分別用wasd和上下左右方向鍵控制兩個小球
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

二:場景細節(某些特效的主要設定)
1.粒子系統——Particle System
start lifetime:控制粒子系統何時消失
start Speed:控制粒子的發散速度
Shape:可供為粒子選擇各種樣式
radius:發散半徑
color over lifetime:顏色漸變
renderer — render mode:粒子顯示風格(平面、垂直、網狀、球體)
material:材質
2.食物正方體按照直接座標系的y軸選擇

這裡寫圖片描述
vertor3(0,1,0)中的1確定按照y軸旋轉, space.world引數確定了其按照世界座標系

3.小球的拖尾特效 trail renderer
這裡寫圖片描述
time:特效的顯示時長
Min Vertex Distance:拖尾最短距離
width:拖尾的寬度(可以設定漸變曲線設定拖尾的形狀)

三:UI
1.為介面新增文字

GUI.Label(new Rect(100, 20, 100, 30), new GUIContent("紅球Ball1分數"));

2.為介面新增按鈕

GUI.Button(new Rect(20, 20, 20, 20), "開始");

3.文字的字型和顏色

GUIStyle style = new GUIStyle();
style.fontSize = 20;
GUI.color = Color.red;

四:部分程式碼實現
1.為兩個小球新增tag分別進行控制移動

            if (ball.tag == "ball1")
            {
                float h = Input.GetAxis("Horizontal");
                float v = Input.GetAxis("Vertical");
                ball.AddForce(new Vector3(h, 0, v) * speed);
            }
            if (ball.tag == "ball2")
            {
                float h = Input.GetAxis("ballH");
                float v = Input.GetAxis("ballV");
                ball.AddForce(new Vector3(h, 0, v) * speed);
            }

2.監測觸發:當小球碰到食物時,食物消失,分數加一 (為預製件新增food為它的tag)

int score = 0;
    private void OnTriggerEnter(Collider other)//用來檢測 觸發  
    {
        if (other.gameObject.tag == "food")
        {
            score++;
            Destroy(other.gameObject);

        }
    }