Last Updated on 2021-11-03 by Clay
在 Unity 當中,若是我們需要修改一個遊戲物件的尺寸,除了在遊戲編輯器中手動進行修改外,也可以透過程式來取得遊戲物件的尺寸、進而賦予新值來更改遊戲物件的大小。
取得遊戲物件的尺寸
// Gets the local scale of a game object
vector3 objectScale = transform.localScale;
transform.localScale
會回傳附加此腳本的遊戲物件的尺寸,是一個 Vector3
資料型態儲存的資料。若是要在腳本中取得其他物件的尺寸,則需要使用:
// Gets the local scale of a game object
vector3 objectScale = OTHER_GAMEOBJECT.gameObject.transform.localScale;
更改遊戲物件的尺寸
由於 transform.localScale 並非唯讀(read-only)屬性,所以我們也可以進行附值。以下是一個將原有尺寸全部縮放成兩倍的程式碼。當然,你可以客製化自己想要的尺寸大小。
// Gets the local scale of game object
vector3 objectScale = transform.localScale;
// Sets the local scale of game object
transform.localScale = new Vector3(objectScale.x*2, objectScale.y*2, objectScale.z*2);
References
- https://www.codegrepper.com/code-examples/csharp/unity+get+scale+of+object
- https://docs.unity3d.com/ScriptReference/Transform-localScale.html