在 Script 中,「gameObject」關鍵字代表了掛載這個 Script 元件的 GameObject;而「transform」關鍵字則代表該 GameObject 所掛載的 Transform 元件,亦可透過「gameObject.transform」來取得 GameObject 掛載的 transform 元件。
GameObject
├Transform
├Script (MonoBehaviour)
├.....
├.....
├.....
物件的名稱及標籤
// 取得名稱
string Name = gameObject.name;
// 取得標籤
string Tag = gameObject.tag;
物件的座標
// 取得世界座標
Vector3 Pos = gameObject.transform.position;
// 設置世界座標 為 (x, y, z)
gameObject.transform.position = new Vector3(x, y, z);
// 設置世界座標 為 (0, 0, 0)
gameObject.transform.position = Vector3.zero;
// 取得本地座標
Vector3 Pos = gameObject.transform.localPosition;
gameObject.transform.localPosition = new Vector3(x, y, z);
// 設置本地座標 為 (0, 0, 0)
gameObject.transform.localPosition = Vector3.zero;
物件的旋轉角度
// 取得世界旋轉角度
Vector3 Rot = gameObject.transform.rotation.eulerAngles;
// 設置世界旋轉角度 為 (x, y, z) Ex-1
gameObject.transform.rotation.eulerAngles = new Vector3(x, y, z);
// 設置世界旋轉角度 為 (x, y, z) Ex-2
gameObject.transform.rotation = Quaternion.Euler (new Vector3(x, y, z));
// 設置世界旋轉角度 為 (0, 0, 0) Ex-1
gameObject.transform.rotation.eulerAngles = Vector3.zero;
// 設置世界旋轉角度 為 (0, 0, 0) Ex-2
gameObject.transform.rotation = Quaternion.Euler (new Vector3(0, 0, 0));
// 取得本地旋轉角度
Vector3 Rot = gameObject.transform.localRotation.eulerAngles;
// 設置本地旋轉角度 為 (x, y, z) Ex-1
gameObject.transform.localRotation.eulerAngles = new Vector3(x, y, z);
transform.localRotation.eulerAngles= new Vector3(x, y, z);
// 設置本地旋轉角度 為 (x, y, z) Ex-2
gameObject.transform.localRotation = Quaternion.Euler (new Vector3(x, y, z));
transform.localRotation = Quaternion.Euler (new Vector3(x, y, z));
// 設置本地旋轉角度 為 (0, 0, 0) Ex-1
gameObject.transform.localRotation.eulerAngles= Vector3.zero;
// 設置本地旋轉角度 為 (0, 0, 0) Ex-2
gameObject.transform.localRotation = Quaternion.Euler (new Vector3(0, 0, 0));
物件的縮放尺寸
// 取得本地縮放尺寸
Vector3 Sca = gameObject.transform.localScale;
// 設置本地縮放尺寸為 (x, y, z)
gameObject.transform.localScale = new Vector3(x, y, z);
// 設置本地縮放尺寸為 (0, 0, 0)
gameObject.transform.localScale = Vector3.zero;
物件操作
// 取得子物件數量
int ChildCount = gameObject.transform.childCount;
// 以子物件的索引位置取得子物件(GameObject)
int ChildIndex = 0;
GameObject Child = gameObject.transform.getChild( ChildIndex ).gameObject;
// 取得父物件(GameObject)
GameObject Parent = gameObject.transform.parent.gameObject;
// 設置父物件(GameObject)
GameObject NewParent = new GameObject();
gameObject.transform.SetParent( NewParent.transfrom );
// 取得指定名稱的物件
string ObjectName = "SomeGameObject";
GameObject SearchObject = GameObject.Find( ObjectName );
// 毀滅指定物件
GameObject SomeObject = new GameObject();
GameObject.Destroy( SomaObject );
// 場景載入時不毀滅指定物件
GameObject SomeObject = new GameObject();
GameObject.DontDestoryOnLoad( SomeObject );
// 複製物件
GameObject SomeObject = new GameObject();
GameObject CloneObject = GameObject.Instantiate( SomeObject );
// 取得物件的掛載元件 Component - Collider
Collider currentCollider = gameObject.GetComponent<Collider>();
// 取得物件的掛載元件 Component - Renderer
Renderer currentRenderer = gameObject.GetComponent<Renderer>();
沒有留言:
張貼留言