Taille d’un gameObject
L’inconvénient dans Unity est que l’on ne connait pas la taille réelle d’un objet sur la scène. On a son scale qui est en fait une proportion mais sinon rien.
Et bien voici la solution trouvée sur le forum officiel. Il s’agit d’une classe en javascript ou en C# que vous nommerez ShowSize.js ou ShowSize.cs et que vous placerez dans un dossier « Editor » à la racine de l’onglet projet. Ainsi vous verrais apparaitre « Window/Show Size » dans le menu. En cliquant, cela ouvre une nouvelle fenêtre qui vous donnera la taille des objets de votre scène en cliquant sur ceux-ci. Chouette non ? 🙂
Les scripts :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class ShowSize extends EditorWindow {
@MenuItem ("Window/Show Size")
static function Init () {
var sizeWindow = new ShowSize();
sizeWindow.autoRepaintOnSceneChange = true;
sizeWindow.Show();
}
function OnGUI () {
var thisObject = Selection.activeObject as GameObject;
if (!thisObject) {return;}
var mf : MeshFilter = thisObject.GetComponent(MeshFilter) as MeshFilter;
if (!mf) {return;}
var mesh = mf.sharedMesh;
if (!mesh) {return;}
var size = mesh.bounds.size;
var scale = thisObject.transform.localScale;
GUILayout.Label("Size\nX: " + size.x*scale.x + " Y: " + size.y*scale.y + " Z: " + size.z*scale.z);
}
} |
et
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | using System.Collections; using UnityEngine; using UnityEditor; class ShowSize : EditorWindow { [MenuItem("Window/ShowSize")] static void Init() { // Get existing open window or if none, make a new one: ShowSize sizeWindow = new ShowSize(); sizeWindow.autoRepaintOnSceneChange = true; sizeWindow.Show(); } void OnGUI () { GameObject thisObject = Selection.activeObject as GameObject; if (thisObject == null) { return; } MeshFilter mf = thisObject.GetComponent(typeof(MeshFilter)) as MeshFilter; if (mf == null) {return;} Mesh mesh = mf.sharedMesh; if (mesh == null) {return;} Vector3 size = mesh.bounds.size; Vector3 scale = thisObject.transform.localScale; GUILayout.Label("Size\nX: " + size.x*scale.x + " Y: " + size.y*scale.y + " Z: " + size.z*scale.z); } } |

Merci beaucoup pour cette fonctionnalité indispensable!!
Bonjour,
Excellent, à coupler avec la création d’un cube de taille 1 qui servira de référence.
Exemple, une porte fait environ 2 mètres de haut, ça permet de redimensionner rapidement tout type de bâtiment.
Bon courage.
Brother Soifran