Unity中的腳本
新建腳本
C#腳本的後綴名是*.cs。
我們可以在Project面板中右鍵->“Create”->"C# Scripte"創建一個新的C# Script腳本。
最好將新的腳本放在一個恰當的文件管理系統中,比如放置在Scripts文件夾中。
新建一個cs文件後,雙擊即可進入Visual Studio編輯腳本。可以看到新的文件已經引用了System.Collections、System.Collections.Generic以及UnityEngine這幾個命名空間,我們還可以看到該腳本中已經自動聲明瞭一個類,類名和文件名相同,且繼承自MonoBehaviour。
如果發現打開cs文件後,visual studio顯示該文件爲雜項文件,進而不能產生聯想,也無法調用其它文件中定義的內容,可以在主界面的菜單欄中的"Edit"->“Preferences”->“External Tools”->"External Script Editor"選項修改爲當前的Visual Studio版本。
嘗試使用Debug
Debug.Log(Object obj); Debug.Lob(String str);
用於在Console面板輸出調試信息。通過參數輸入Object後,函數調用了obj.ToString,並將返回的字符串輸出到Console。Unity中常見的類型輸出的內容如下:
string:輸出本身。
int/float/double/uint等數值類型:輸出數值。
GameObject:輸出GameObject.name。
Vector2和Vector3:輸出(x,y,z)格式的向量。
Color:輸出(r,g,b,a)格式的向量。
Debug.LogWarning(Object obj);
用於在Console面板輸出警告信息。
Debug.LogError(Object obj);
用於在Console面板輸出錯誤信息。
在C#中可以使用”+“連接兩個字符串,但是衆所周知任何語言中使用”+“連接字符串效率都不高。解決這個問題,除了使用C#本身的String.Format()外,Unity在Debug類中提供了以下三個函數:
Debug.LogFormat(); Debug.LogWarningFormat(); Debug.LogErrorFormat();
它們的使用方法和String.Format()一致,示例如下:
Debug.LogFormat("We have {0} boxes, and the first one is at {2}", boxes.count, boxes[0].transform.position);
任務
- 新建一個cs腳本命名爲HelloWorld。
- 打開cs腳本,在Start()函數體內寫上如下代碼:
Debug.Log("Hello world!");
- 在Update()函數體內寫上如下代碼:
Debug.LogFormat("The game has runned for {0} seconds!",Time.time);
- 進入Unity引擎,在Hierarchy面板中新建一個空GameObject,命名爲Debuger。
- 選中新建的Debuger,同時在Project面板中找到HelloWorld.cs腳本,將它拖動到Inspector面板中,使其附加在Debuger上。
- 開啓試玩,觀察Console面板的輸出信息,猜想Start和Update函數的作用。
Unity中的數學類
Unity中的隨機數
Unity的UnityEngine.Random類重寫了System.Random,對常用的Unity類型提供了額外的隨機函數。