U3D常用的類和結構體

U3D常用的類和結構體

9個回調:

Awake():遊戲開始第一個調用的函數,調用一次,並且如果腳本所在的組件不可用,仍然可以調用。

OnEnable():當腳本所在的組件被激活(設置可用),調用一次。

Start():當遊戲開始運行時調用一次,一般 可以用來設置初始值。

FixedUpdate():每隔一定的時間間隔調?用?次。

Update():每幀調?用一次。

LateUpdate():每幀調?用?次。

OnGUI():每幀調?用兩次。

OnDisable():每當腳本組件被設置為不不可?用時調?用一次。

OnDestroy():當腳本組件被銷毀,或整個遊戲對象銷毀時調?用?次。

Deg.Log():列印,一般調試時使用,非常好用。

DrawLine(Vector3 start,Vector3 end):畫線段,從start到end點。

DrawRay(Vector3 start,Vector3 dir):畫射線(其實也是線段不過方向是用向量表示的)。從start點按照dir方向向量開始畫。

GameObject

GameObject類表示的遊戲物體,其下有很多屬性訪問器,例如:Collider(棄用)、Rigidbody(棄用)、Transform(只能訪問,不能寫入)。棄用的屬性訪問器需要GetComponent<>():獲取組件,返回值為泛型。

gameObject表示此遊戲對象。

可用gameObject.SetActicve(bool)打開或者關閉這個遊戲對象的激活狀態。

activeSelf可以查看當前對象的激活狀態,返回值是bool類型。

name:名字(可用來查找)Find 通過name

tag:標籤,用法同上,FindWithTag 通過tag查找此方法較快。

layer:層

Transform

Transform下的屬性訪問器有position、localPosition、eularAngles(歐拉角類型為三維向量,表示每一個軸表示繞此軸旋轉多少度)localEularAngles、rotation(旋轉角度類型四元數表示)、localRotation。localScale(表示縮放,類型為三維向量,延自己的每一個軸縮放)

rotation可以用Quaternion.Eular(EularAngles)轉換為四元數。

如果想朝向某個向量可以 rotation=Quaternion.LookRotation(dir 方向向量 類型為三維向量)表示。

transform控制運動:

transform.translate(Vector3 表示運動的方向和速度):移動,這裡的三維向量是方向,如果想向前移動,則三維向量應該是transform.forward。

transform.Rotate(Vector3 繞的向量):自轉,這裡的向量是就自身向量而言,比如想繞自身的x軸旋轉,這裡的三維向量就應該是Vector3.right。

transform.RotateAround(Vector3 點,Vector3 軸,float 角度):繞一點在一軸上旋轉,這裡的三維向量是指軸,如果想繞自身的x軸旋轉,這裡的三維向量應該為transform.right。

transform.LookAt(Vector3 點的坐標)看向某個點或者某個物體

transform查找子父物體:

SetParent (父物體.transform)設置?父物體

GetChild(0/1/2/3.....) 獲取?子物體

childCount ?子對象個數

parent ?父對象

root 根對象

Find("name"):查找物體下子物體的名字,如果有層級關係用Find("name1/name2")表示查找該物體下的子物體1下的子物體2。

Vector3(結構體):

Normalized(Vector3):將向量歸一化

Magnitude(Vector3):計算向量的模(因為內置函數是通過勾股定理計算得到,所以比較兩個向量的長度使用下面方法更快捷)

sqrMagnitude (Vector3):模的平?,比較兩個向量量的?長度

forward:世界向量的前方(Z軸正方向)

up:世界向量的上方(Y軸正方向)

right:世界向量的右方(X軸正方向)

Angle(Vecor3向量1,Vector3向量2) 求兩個向量量的夾?角

Distance(Vector3點1,Vector3點2)求兩個點的距離

Vector3.Lerp(Vector3 start,Vector3 end,float)插值函數:float範圍0~1,表示返回Vector3類型=(Vector3 end-Vector3 start)*float。根據比例得到兩值之間的一個三維向量。

Quaternion(結構體):

identity 空旋轉

LookRotation 將.一個方向向量轉換為這個.方向所代表的四元數

用法:transform.rotation=Quaternion.LookRotation(Vector3);物體看向這個方向。

Lerp 插值,用法同上

Time

time 從遊戲開始到此時,所花費的時間

deltaTime 從上一幀結束到當前幀開始,所花費的時間

Time.deltaTime表示兩幀間隔的時間,想要1s實現怎樣的運動即可在後方*Time.deltaTime即可。

fixedDeltaTime 固定間隔時間默認0.02

timeScale 時間縮放默認1

Mathf(結構體):

Abs 求絕對值

Lerp(float,float,float) 插值函數,用法同上

初學Unity,請大家不吝賜教


推薦閱讀:

Unity 2D 動態陰影怎麼實現 | Nexus遊戲說
5秒內 男與女4種經典誤會 :: Chinese Community .us :: Stronger. Better.
【Unity插件】Super Invoke 超級調用插件 官方文檔翻譯
Building Sense of Community at a Distance
Unity接入多個SDK的通用介面開發與資源管理(二)

TAG:Unity遊戲引擎 | unity |