Skip to content
Snippets Groups Projects
ShowSize.cs 1.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    using System.Collections;
    using UnityEngine;
    using UnityEditor;
    
    /* ############################
     * ## Show Size Editor Addon ##
     * ## This script reports  ##
     * ## the size of a object  ##
     * ## in x,y and z axis'.  ##
     * ## All work by Eric5h5  ##
     * ##forum.unity3d.com/threa ##
     * ## ds/object-size.19991  ##
     * ## C# conversion and warn ##
     * ##ing fix by Nsomnia of  ##
     * ## BlenderTek.com and last##
     * ## function by justinlloyd##
     * ############################ */
    
    class ShowSize : EditorWindow
    {
        [MenuItem("Window/ShowSize")]
        static void Init()
        {
            // Get existing open window or if none, make a new one:
            //Next line replaces old statment causing a warning in Unity 4.6 used to be "ShowSize sizeWindow = new ShowSize();"
            ShowSize sizeWindow = ScriptableObject.CreateInstance(typeof(ShowSize)) as ShowSize;
            sizeWindow.autoRepaintOnSceneChange = true;
            sizeWindow.Show();
        }
    
        void OnGUI()
        {
            if (Selection.activeGameObject != null)
            {
                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\n  X: " + size.x * scale.x + "\n  Y: " + size.y * scale.y + "\n  Z: " + size.z * scale.z + "");
            }
    
            if (!LaserPointer.laserBool)
                return;
    
            RaycastHit laserHit = LaserPointer.laserHit;
            GUILayout.Label("Laser Pointer:\n  " + laserHit.transform.position.ToString() + "\n\n");
        }
    
        void Update()
        {
            Repaint();
        }
    }