Unity引擎一些不容易發現的小技巧

Unity引擎一些不容易發現的小技巧

1. transform可以直接遍歷

之前我只知道可以通過GetChild來遍歷tranform,但不知道可以直接遍歷。

// 通過GetChild遍歷
for (var i = 0; i < transform.childCount; ++i) {
	var child = transform.GetChild(i);
	Debug.Log(child.name);
}

// 直接遍歷,更方便
foreach (var child in transform) {
    Debug.Log(child.name);
}

2. 延遲Destroy

但簡單實用的技巧,一直沒有發現。。

// 延遲2秒Destroy
GameObject.Destroy(gameObject, 2f);

3. 讓SceneView的鏡頭跟蹤指定GameObject

在運行時選中一個GameObject,按f可以讓SceneView的鏡頭聚焦到這個GameObject,再按2下f可以讓SceneView的鏡頭一直跟蹤它。

這個技巧我在Unity2019.2.6裏測試失敗了,可能已經不支持了,大家可以試下自己的版本支不支持。

4. Layer的名字也支持用/分割。

如Actor/Monster,會顯示如下:
在這裏插入圖片描述

5. Inspector裏的數字框支持輸入數學表達式

如在transform的Position裏輸入1+1,按回車後會自動變成2。

6. 同時查看2個GameObject的Inspector

點擊Inspector右上角的?可以鎖定Inspector,這時再選中其他物體,Inspector也不會改變。
同時可以打開一個新的沒鎖定的Inspector(通過?右邊的小按鈕),這樣就可以同時打開2個不同GameObject的Inspector,對比着修改參數。

7. Debug.Log可以加上一個Object的參數,這樣打印出來的log點擊後會高亮這個Object。

Debug.Log("pos = " + transform.position, gameObject);

點擊這條log,Hierarchy界面裏對應的gameObject會高亮一下。這樣就能很清晰地知道是哪個GameObject打印的log。

8. 通過AnimationCurve來顯示一個不停改變的值的曲線。

有時我們會在Update裏打印一個數值,來持續觀察這個數值的改變。不過這樣會導致Console界面裏的log太多,而且不容易觀看。
這時可以創建一個AnimationCurve的成員變量,每次將新的值添加到這個變量中,這樣就可以在Inspector裏查看這個值改變的曲線。

public class ExampleScript : MonoBehaviour
{
    public AnimationCurve plot = new AnimationCurve();

    void Update()
    {
        var val = Mathf.Sin(Time.time);
        plot.AddKey(Time.realtimeSinceStartup, val);
    }
}

在這裏插入圖片描述
在這裏插入圖片描述

9. 在Project界面裏將1個Scene拖到另一個Scene上,會將這2個Scene合併出一個新的Scene。

10. Inspector裏的List變量支持一次拖入多的Item。

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