public override void OnInspectorGUI() { serializedObject.Update(); UIPanel panel = target as UIPanel; #if UNITY_5 DrawPropertiesExcluding(serializedObject, propertyToExclude); #endif EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Package Name"); if (GUILayout.Button(packageName.stringValue, "ObjectField")) { EditorWindow.GetWindow <PackagesWindow>(true, "Select a UI Component").SetSelection(packageName.stringValue, componentName.stringValue); } if (GUILayout.Button("Clear", GUILayout.Width(50))) { bool isPrefab = PrefabUtility.GetPrefabType(panel) == PrefabType.Prefab; panel.SendMessage("OnUpdateSource", new object[] { null, null, null, !isPrefab }); #if (UNITY_5_3 || UNITY_5_4) EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); #elif UNITY_5 EditorApplication.MarkSceneDirty(); #else EditorUtility.SetDirty(panel); #endif } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Component Name"); if (GUILayout.Button(componentName.stringValue, "ObjectField")) { EditorWindow.GetWindow <PackagesWindow>(true, "Select a UI Component").SetSelection(packageName.stringValue, componentName.stringValue); } EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(renderMode); if ((RenderMode)renderMode.enumValueIndex != RenderMode.ScreenSpaceOverlay) { EditorGUILayout.PropertyField(renderCamera); } int oldSortingOrder = panel.sortingOrder; EditorGUILayout.PropertyField(sortingOrder); EditorGUILayout.PropertyField(fairyBatching); EditorGUILayout.PropertyField(hitTestMode); EditorGUILayout.PropertyField(touchDisabled); EditorGUILayout.LabelField("UI Transform", (GUIStyle)"OL Title"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(position); EditorGUILayout.PropertyField(rotation); EditorGUILayout.PropertyField(scale); EditorGUILayout.Space(); FitScreen oldFitScreen = (FitScreen)fitScreen.enumValueIndex; EditorGUILayout.PropertyField(fitScreen); if (serializedObject.ApplyModifiedProperties()) { if (PrefabUtility.GetPrefabType(panel) != PrefabType.Prefab) { panel.ApplyModifiedProperties(sortingOrder.intValue != oldSortingOrder, (FitScreen)fitScreen.enumValueIndex != oldFitScreen); } } }