public override void OnInspectorGUI() { if (!Application.isPlaying) { if (m_scene.SceneName == string.Empty) { EditorGUILayout.HelpBox("Please firstly save the scenes", MessageType.Error); } else { var scnData = SceneData.GetBySceneName(m_scene.SceneName); var sceneExist = scnData != null; var defaultColor = GUI.color; GUI.color = (sceneExist) ? defaultColor : new Color(1f, 0.5f, 0.3f); if (GUILayout.Button("Manage Setting Data")) { CreateScenePopupWindow.ShowWindow(m_scene); } GUI.color = defaultColor; var deviceType = SceneDetail.GetBySceneName(m_scene.SceneName).deviceType; EditorGUILayout.LabelField("Device Type", deviceType); } } base.OnInspectorGUI(); }
public void Init(TGBaseScene _scene) { m_scene = _scene; m_prevSceneData = m_newSceneData = SceneData.GetBySceneName(m_scene.SceneName); m_prevSceneDetail = m_newSceneDetail = SceneDetail.GetBySceneName(m_scene.SceneName); }
private void OnGUI() { EditorGUILayout.BeginVertical(); var settingData = TGSettingData.GetInstance(); // 如果没有则提示到TGframework/Preferences里创建 if (settingData.sceneDatas == null || settingData.sceneDatas.Count == 0) { EditorGUILayout.HelpBox("没有任何的SceneData,请通过TGFramework/Preferences创建", MessageType.Error); return; } // 如果有则允许通过弹窗选择,并且列出该信息 m_newSceneData = DrawSceneDataSelection(); m_newSceneDetail = DrawSceneDetailSelection(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Confirm")) { var setting = TGSettingData.GetInstance(); // 检测信息是否发生改变,如果发生改变则先把旧的信息移除 if (m_prevSceneData != m_newSceneData && m_prevSceneData != null) { m_prevSceneData.sceneDetails.Remove(m_prevSceneDetail); } // 如果该场景已经存在,则更新其数值 // 反之则添加新数据到列表里 if (m_newSceneData != null) { var scnIndex = m_newSceneData.sceneDetails.IndexOf(m_newSceneDetail); if (scnIndex >= 0) { m_newSceneData.sceneDetails[scnIndex] = m_newSceneDetail; } else { m_newSceneData.sceneDetails.Add(m_newSceneDetail); } } EditorUtility.SetDirty(settingData); EditorWindow.GetWindow <TGSettingDataWindow>().Repaint(); Close(); } if (GUILayout.Button("Cancel")) { Close(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
private void DrawSceneDetail(SceneDetail _sc) { var asset = AssetDatabase.LoadAssetAtPath <SceneAsset>(TGPaths.FullScenePath(_sc.sceneName)); if (asset == null) { EditorGUILayout.HelpBox("Please make sure scene has saved to Assets/_Projects/Scenes Directory", MessageType.Warning); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.ObjectField(asset, typeof(SceneAsset), false, GUILayout.Width(350), GUILayout.MinWidth(150)); EditorGUILayout.LabelField(_sc.deviceType, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); }
public override void AddObjectDetail(Object obj, Object refObj, Object detailRefObj) { ObjectDetail detail = null; foreach (var v in CheckList) { if (v.checkObject == obj) { detail = v; } } if (detail == null) { detail = new SceneDetail(obj, this); } detail.AddObjectReference(refObj, detailRefObj); }