智能交通系統學習筆記——汽車行駛和尋路

LOD Group(層次細節)

由於場景變大,就要更加考慮性能的問題。有一種管理方法,取決於攝像機離對象的遠近,網格有不同的細節級別,這就是所謂的細節級別( Level of Detail)(LOD的縮寫)

GameObject.CompareTag

使用GameObject.CompareTag代替GameObject.tag:GameObject.tag會在內部循環調用對象分配的標籤屬性並分配額外的內存。並且更耗時。

TooltipAttribute的使用。主要介紹使用TooltipAttribute給指定的變量添加說明提示。

Animator 的CRossFade和CrossFadeInFixedTime

在當前狀態和目標狀態之間創建一個動態過渡。

CrossFade是按照動畫的自身時間進行混合。如果動畫10秒,混合持續時間0.2,會在2秒後混合完成

anim.CrossFade("A2", 0.2f);

CrossFadeInFixedTime是按照實際時間進行混合。如果動畫10秒,混合持續時間0.2,會在0.2秒後混合完成

 

Physics.OverlapSphere 

返回球內或與之接觸的所有碰撞器。注意,這個僅針對碰撞器的邊界體檢測,而不是針對實際的碰撞器。

transform.TransformDirection

從自身座標到世界座標變換方向。這個操作不會受到變換的縮放和位置的影響。返回的向量與direction有同樣的長度。

Vector.Dot

 1.點積 
  點積的計算方式爲:  a·b=|a|·|b|cos<a,b>  其中|a|和|b|表示向量的模,<a,b>表示兩個向量的夾角。另外在 點積 中,<a,b>和<b,a> 夾角是不分順序的。 
  所以通過點積,我們其實是可以計算兩個向量的夾角的。 
  另外通過點積的計算我們可以簡單粗略的判斷當前物體是否朝向另外一個物體: 只需要計算當前物體的transform.forward向量與 (otherObj.transform.position – transform.position)的點積即可, 大於0則面對,否則則背對着。當然這個計算也會有一點誤差,但大致夠用。 

 2.叉積 
  叉積的定義: c =a x b  其中a,b,c均爲向量。即兩個向量的叉積得到的還是向量! 

  性質1: c⊥a,c⊥b,即向量c垂直與向量a,b所在的平面 。 
  性質2: 模長|c|=|a||b|sin<a,b> 
  性質3: 滿足右手法則 。從這點我們有axb ≠ bxa,而axb = – bxa。所以我們可以使用叉積的正負值來判斷向量a,b的相對位置,即向量b是處於向量a的順時針方向還是逆時針方向。 

 

Vector3.ProjectOnPlane()-投影於面

public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal)

  • 求一個向量在一個平面上的投影
  • planeNormal:指的是該平面的法向量

Vector3.RotateTowards:當前的向量轉向目標。

static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);

這個函數類似於MoveTowards除了將向量被視爲一個方向,而不是一個位置上。當前向量將被旋轉朝向目標方向由maxRadiansDelta的角度,雖然會恰好落在目標,而不是超過。如果當前的大小和目標的是不同的,那麼結果的幅度將被線性地旋轉過程中進行插值。如果一個負值用於maxRadiansDelta ,向量會轉離目標/直到它指向完全相反的方向,然後停止。

Quaternion.LookRotation 注視旋轉

創建一個旋轉,沿着forward(z軸)並且頭部沿着upwards(y軸)的約束注視。也就是建立一個旋轉,使z軸朝向view y軸朝向up

返回計算四元數。如果用於定向的變換,Z軸將會被對準前方並且如果這些向量正交,Y軸向前。如果forward方向是0,記錄一個錯誤。

 

 

Vector3.SignedAngle(from,to,axis):Returns the signed angle in degrees between from and to.

Mathf.Atan2反正切

static function Atan2 (y : float, x :float) : float

以弧度爲單位計算並返回 y/x 的反正切值。返回值表示相對直角三角形對角的角,其中 x 是臨邊邊長,而 y 是對邊邊長。

返回值是在x軸和一個二維向量開始於0個結束在(x,y)處之間的角。

 

Mathf.Rad2Deg 弧度轉度

 

static var Rad2Deg : float

Description描述

Radians-to-degrees conversion constant (Read Only).

弧度到度的轉化常量。(只讀)

 

Physics.IgnoreLayerCollision 忽略碰撞層

 

static function IgnoreLayerCollision (layer1 : int, layer2 : int, ignore : bool = true) : void

Description描述

Makes the collision detection system ignore all collisions between any collider in layer1 and any collider in layer2.

使碰撞偵測忽略層1和層2之間的所有碰撞器。

You can set the default values for your project for any layer combinations in the Physics inspector.

也可以在Physics 檢視面板中,設置碰撞檢測的默認忽略層。

 

SerializedProperty和SerializedObject類用於對象編輯器屬性,是完全通用的方法,自動處理撤銷和爲預設的UI樣式。

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