Assets/Editor/UI/UIBaseInspector.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/UI/UIBaseInspector.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Resources/Prefabs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Resources/Prefabs/ClickEmptyCloseMask.prefab | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Resources/Prefabs/ClickEmptyCloseMask.prefab.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Resources/Prefabs/ScreenMask.prefab | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Resources/Prefabs/ScreenMask.prefab.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Assets/Editor/UI/UIBaseInspector.cs
New file @@ -0,0 +1,108 @@ using UnityEngine; using UnityEditor; [CustomEditor(typeof(UIBase))] public class UIBaseInspector : Editor { SerializedProperty uiLayer; SerializedProperty uiName; SerializedProperty isMainUI; SerializedProperty supportParentChildRelation; SerializedProperty isPersistent; SerializedProperty maxIdleRounds; SerializedProperty openAnimationType; SerializedProperty closeAnimationType; SerializedProperty animationDuration; SerializedProperty animationEase; SerializedProperty openMask; SerializedProperty clickEmptySpaceClose; void OnEnable() { // 获取所有SerializedProperty uiLayer = serializedObject.FindProperty("uiLayer"); uiName = serializedObject.FindProperty("uiName"); isMainUI = serializedObject.FindProperty("isMainUI"); supportParentChildRelation = serializedObject.FindProperty("supportParentChildRelation"); isPersistent = serializedObject.FindProperty("isPersistent"); maxIdleRounds = serializedObject.FindProperty("maxIdleRounds"); openAnimationType = serializedObject.FindProperty("openAnimationType"); closeAnimationType = serializedObject.FindProperty("closeAnimationType"); animationDuration = serializedObject.FindProperty("animationDuration"); animationEase = serializedObject.FindProperty("animationEase"); openMask = serializedObject.FindProperty("openMask"); clickEmptySpaceClose = serializedObject.FindProperty("clickEmptySpaceClose"); } public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(uiLayer); EditorGUILayout.PropertyField(uiName); EditorGUILayout.PropertyField(isMainUI); EditorGUILayout.PropertyField(supportParentChildRelation); EditorGUILayout.Space(); EditorGUILayout.LabelField("持久化设置", EditorStyles.boldLabel); EditorGUILayout.PropertyField(isPersistent); if (isPersistent.boolValue) { EditorGUI.indentLevel++; EditorGUILayout.PropertyField(maxIdleRounds); EditorGUI.indentLevel--; } EditorGUILayout.Space(); EditorGUILayout.LabelField("动画设置", EditorStyles.boldLabel); EditorGUILayout.PropertyField(openAnimationType); EditorGUILayout.PropertyField(closeAnimationType); if (openAnimationType.enumValueIndex != 0 || closeAnimationType.enumValueIndex != 0) { EditorGUI.indentLevel++; EditorGUILayout.PropertyField(animationDuration); EditorGUILayout.PropertyField(animationEase); EditorGUI.indentLevel--; } EditorGUILayout.Space(); EditorGUILayout.LabelField("遮罩设置", EditorStyles.boldLabel); // 使用BeginHorizontal来创建一个水平布局组 EditorGUILayout.BeginHorizontal(); // 创建一个开关按钮组 EditorGUI.BeginChangeCheck(); bool tempOpenMask = GUILayout.Toggle(openMask.boolValue, "开启遮罩", EditorStyles.miniButtonLeft); bool tempClickEmptyClose = GUILayout.Toggle(clickEmptySpaceClose.boolValue, "点击空白关闭", EditorStyles.miniButtonRight); // 如果有改变 if (EditorGUI.EndChangeCheck()) { // 确保只有一个可以为true if (tempOpenMask && tempClickEmptyClose) { // 如果两个都为true,保持最后改变的那个为true if (openMask.boolValue != tempOpenMask) { clickEmptySpaceClose.boolValue = false; openMask.boolValue = true; } else { openMask.boolValue = false; clickEmptySpaceClose.boolValue = true; } } else { openMask.boolValue = tempOpenMask; clickEmptySpaceClose.boolValue = tempClickEmptyClose; } } EditorGUILayout.EndHorizontal(); serializedObject.ApplyModifiedProperties(); } } Assets/Editor/UI/UIBaseInspector.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 0fbf6ddb4c77d3d4d99505d359d8b869 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Resources/Prefabs.meta
New file @@ -0,0 +1,8 @@ fileFormatVersion: 2 guid: 4d4fd0d1daafb9841b7e18e19ecd9665 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Assets/Resources/Prefabs/ClickEmptyCloseMask.prefab
New file @@ -0,0 +1,122 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1 &1007792482766145798 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 3131827869564620803} - component: {fileID: 4732318971056992194} - component: {fileID: 1853674911349692926} - component: {fileID: 1845536471669267178} m_Layer: 5 m_Name: ClickEmptyCloseMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!224 &3131827869564620803 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1007792482766145798} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1500, y: 2668} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4732318971056992194 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1007792482766145798} m_CullTransparentMesh: 1 --- !u!114 &1853674911349692926 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1007792482766145798} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 --- !u!114 &1845536471669267178 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1007792482766145798} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} m_SelectOnRight: {fileID: 0} m_Transition: 1 m_Colors: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1853674911349692926} m_OnClick: m_PersistentCalls: m_Calls: [] Assets/Resources/Prefabs/ClickEmptyCloseMask.prefab.meta
New file @@ -0,0 +1,7 @@ fileFormatVersion: 2 guid: 8cc63f19afdf9094eae57bd1525b0aa9 PrefabImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Assets/Resources/Prefabs/ScreenMask.prefab
New file @@ -0,0 +1,74 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1 &6573027761555286950 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 5060824339156781239} - component: {fileID: 5139521211198942054} - component: {fileID: 7843618826810733026} m_Layer: 5 m_Name: ScreenMask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 --- !u!224 &5060824339156781239 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6573027761555286950} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1500, y: 2668} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5139521211198942054 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6573027761555286950} m_CullTransparentMesh: 1 --- !u!114 &7843618826810733026 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6573027761555286950} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] m_Texture: {fileID: 0} m_UVRect: serializedVersion: 2 x: 0 y: 0 width: 1 height: 1 Assets/Resources/Prefabs/ScreenMask.prefab.meta
New file @@ -0,0 +1,7 @@ fileFormatVersion: 2 guid: dde61cfb2ea7daf4a8336bef0b656390 PrefabImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: