利用This擴充套件靜態方法(鏈式程式設計)
阿新 • • 發佈:2018-12-18
比如 "gameObject.GetComponent<Transform>() ; " 可以通過GameObject直接呼叫Unity定義好的API "GetComponent" ,如果已有API滿足不了使用需求,還可以利用This關鍵字進行擴充套件(專業名詞應該是鏈式程式設計),當然也不僅限於GameObject。
比如:
修改Transform.Position的X值:
public static void SetPositionX(this Transform t, float newX) { t.position = new Vector3(newX, t.position.y, t.position.z); }
修改Vector3的Y值:
public static Vector3 SetY(this Vector3 t, float newY)
{
t.y = newY;
return t;
}
修改Color的透明度:
public static Color SetAlpha(this Color c, float newAlpha)
{
c.a = newAlpha;
return c;
}
這樣就可以自己封裝一些使用頻率高的方法函式,呼叫更加簡潔方便,但這樣也會混淆Unity原有函式,需要合理使用~~