Пример #1
0
 public void ClearGameObject()
 {
     _sceneObjectID = -1;
     _objectName    = null;
     _scene.ClearScene();
     _prefab.ClearAsset();
     _editorGameObject       = null;
     _editorLoaderGameObject = null;
     _editorSceneLoaded      = false;
     _editorLoaderIsLoaded   = false;
 }
Пример #2
0
            public bool RenderObjectProperties(GUIContent label)
            {
                bool dataChanged = false;

                if (label == null)
                {
                    label = new GUIContent();
                }

                label.text += " (" + this + ")";

                _editorFoldout = EditorGUILayout.Foldout(_editorFoldout, label);
                if (_editorFoldout)
                {
                    int origIndent = EditorGUI.indentLevel;
                    EditorGUI.indentLevel++;

                    //Draw type dropdown
                    {
                        EditorGUI.BeginChangeCheck();
                        _editorType = (eEdtiorType)EditorGUILayout.EnumPopup("Material Type", _editorType);

                        if (EditorGUI.EndChangeCheck())
                        {
                            dataChanged = true;
                            _materialRef.ClearAsset();
                            _materialIndex = -1;
                            _renderer.ClearComponent();
                        }
                    }

                    //Draw renderer field
                    if (_editorType == eEdtiorType.Instance)
                    {
                        if (_renderer.RenderObjectProperties(new GUIContent("Renderer")))
                        {
                            dataChanged = true;
                            _materialRef.ClearAsset();
                            _materialIndex = 0;
                        }

                        //Show drop down for materials
                        Renderer renderer = _renderer.GetEditorComponent();

                        if (renderer != null)
                        {
                            string[] materialNames = new string[renderer.sharedMaterials.Length];

                            for (int i = 0; i < materialNames.Length; i++)
                            {
                                materialNames[i] = renderer.sharedMaterials[i].name;
                            }

                            _materialIndex = EditorGUILayout.Popup("Material", _materialIndex, materialNames);
                        }
                    }
                    else
                    {
                        dataChanged |= _materialRef.RenderObjectProperties(new GUIContent("Material"));
                    }

                    EditorGUI.indentLevel = origIndent;
                }

                return(dataChanged);
            }
Пример #3
0
            public bool RenderObjectProperties(GUIContent label)
            {
                bool dataChanged = false;

                if (label == null)
                {
                    label = new GUIContent();
                }

                label.text += " (" + this + ")";

                _editorFoldout = EditorGUILayout.Foldout(_editorFoldout, label);

                if (_editorFoldout)
                {
                    int origIndent = EditorGUI.indentLevel;
                    EditorGUI.indentLevel++;

                    eType type = (eType)EditorGUILayout.EnumPopup("Link Type", _editorLinkType);

                    //If link type changed, clear info
                    if (_editorLinkType != type)
                    {
                        _editorLinkType = type;
                        _file.ClearAsset();
                        _stateId         = -1;
                        _timelineState   = null;
                        _editorStateName = null;
                        dataChanged      = true;
                    }

                    switch (_editorLinkType)
                    {
                    case eType.Internal:
                    {
                        dataChanged |= DrawStateNamePopUps();
                    }
                    break;

                    case eType.External:
                    {
                        TextAsset asset = EditorGUILayout.ObjectField("File", _file._editorAsset, typeof(TextAsset), false) as TextAsset;

                        //If asset changed update GUIDS
                        if (_file._editorAsset != asset)
                        {
                            _file._editorAsset = asset;

                            _file.ClearAsset();
                            _stateId         = -1;
                            _timelineState   = null;
                            _editorStateName = null;

                            if (asset != null)
                            {
                                _file.SetAsset(asset);
                            }

                            dataChanged = true;
                        }

                        if (_file._editorAsset != null)
                        {
                            dataChanged |= DrawStateNamePopUps();
                        }
                    }
                    break;
                    }

                    EditorGUI.indentLevel = origIndent;
                }

                return(dataChanged);
            }
 protected override void ClearStaticValue()
 {
     _value.ClearAsset();
 }