Пример #1
0
    private static void UpdatePreView(ref ImageExtensionBehaviour marker)
    {
        if (Application.isPlaying)
        {
            return;
        }


        var mat = GetMarkerMaterial(Application.streamingAssetsPath + "/" + marker.GetPath());

        if (mat)
        {
            var render = marker.GetComponent <MeshRenderer>();
            if (render == null)
            {
                render = marker.gameObject.AddComponent <MeshRenderer>();
            }
            render.material = mat;
            float ratio      = (float)mat.mainTexture.height / (float)mat.mainTexture.width;
            var   meshFilter = marker.GetComponent <MeshFilter>();
            if (meshFilter == null)
            {
                meshFilter = marker.gameObject.AddComponent <MeshFilter>();
            }
            meshFilter.sharedMesh = makeQuadMesh(ratio);
        }
        EditorUtility.UnloadUnusedAssetsImmediate();
    }
Пример #2
0
    static ImageExtensionEditor()
    {
        EditorApplication.playModeStateChanged += (x) => {
            if (EditorApplication.isPlayingOrWillChangePlaymode == false && EditorApplication.isPlaying == false)
            {
                ImageExtensionBehaviour[] markers = GameObject.FindObjectsOfType <ImageExtensionBehaviour>();
                foreach (ImageExtensionBehaviour marker in markers)
                {
                    var render = marker.GetComponent <MeshRenderer>();
                    if (render != null)
                    {
                        render.enabled = true;
                    }
                }
            }
        };

        EditorApplication.hierarchyChanged += () =>
        {
            ImageExtensionBehaviour[] markers = GameObject.FindObjectsOfType <ImageExtensionBehaviour>();
            foreach (ImageExtensionBehaviour marker in markers)
            {
                ImageExtensionBehaviour tmp = marker;
                UpdatePreView(ref tmp);
            }
        };
    }
Пример #3
0
    public override void OnInspectorGUI()
    {
        base.DrawDefaultInspector();
        //Debug.Log("OnInspectorGUI");
        ImageExtensionBehaviour marker = target as ImageExtensionBehaviour;

        serializedObject.Update();
        EditorGUILayout.PropertyField(widthProp);
        serializedObject.ApplyModifiedProperties();
        if (GUI.changed)
        {
            EditorUtility.SetDirty(marker);
            UpdatePreView(ref marker);
        }
    }