using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector.Editor; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; [CanEditMultipleObjects] [CustomEditor(typeof(SceneObject))] public class SceneObjectInspector : Editor { private SceneObject Target => target as SceneObject; public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); Target.Transparent = EditorGUILayout.Toggle("是否半透", Target.Transparent); //if(Application.isPlaying) Target.UseSurface = EditorGUILayout.Toggle("是否使用面片", Target.UseSurface); GUI.enabled = false; EditorGUILayout.ObjectField("renderInfo", Target.renderInfo,typeof(SceneObjectRenderInfo),false); EditorGUILayout.EnumPopup("对象类型", Target.sceneObjectType); GUI.enabled = true; if (EditorGUI.EndChangeCheck() && !Application.isPlaying) { EditorSceneManager.MarkSceneDirty(Target.gameObject.scene); } foreach (var o in targets) { var k_target = (SceneObject)o; if(k_target == target) continue; k_target.Transparent = Target.Transparent; k_target.UseSurface = Target.UseSurface; } } }