This commit is contained in:
2026-06-09 00:38:54 +07:00
parent b8b222632d
commit 466a9fac10
633 changed files with 109442 additions and 229 deletions

View File

@@ -1,81 +1,81 @@
// ===============================================================================
// HierarchyEnhancer - Quick Toggle for GameObjects
// // ===============================================================================
// // HierarchyEnhancer - Quick Toggle for GameObjects
// //
// // Creator: Scove
// // Last Updated: 2024-05-08
// // Version: 2.0
// //
// // Purpose:
// // Adds a handy toggle checkbox to the right side of every item in the Hierarchy.
// // This allows you to enable or disable GameObjects instantly without selecting them.
// //
// // Key Features:
// // 1. One-click activation/deactivation directly in Hierarchy.
// // 2. Full Undo/Redo support integrated with Unity's system.
// // 3. Optimized UI placement to avoid overlapping with object names.
// // 4. Visual clarity: Helps quickly identify inactive objects in a complex tree.
// //
// // How to Use:
// // 1. Place this script in an 'Editor' folder.
// // 2. Look at your Hierarchy window; a small checkbox will appear on the far right.
// // 3. Click the checkbox to toggle the Active/Inactive state of any GameObject.
// // ===============================================================================
//
// Creator: Scove
// Last Updated: 2024-05-08
// Version: 2.0
// using UnityEditor;
// using UnityEngine;
//
// Purpose:
// Adds a handy toggle checkbox to the right side of every item in the Hierarchy.
// This allows you to enable or disable GameObjects instantly without selecting them.
// namespace Editor
// {
// [InitializeOnLoad]
// public class HierarchyEnhancer
// {
// // Define the width of the toggle area
// private const float TOGGLE_WIDTH = 16f;
//
// Key Features:
// 1. One-click activation/deactivation directly in Hierarchy.
// 2. Full Undo/Redo support integrated with Unity's system.
// 3. Optimized UI placement to avoid overlapping with object names.
// 4. Visual clarity: Helps quickly identify inactive objects in a complex tree.
// static HierarchyEnhancer()
// {
// // Subscribe to the hierarchy item GUI event
// EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyItemGUI;
// }
//
// How to Use:
// 1. Place this script in an 'Editor' folder.
// 2. Look at your Hierarchy window; a small checkbox will appear on the far right.
// 3. Click the checkbox to toggle the Active/Inactive state of any GameObject.
// ===============================================================================
using UnityEditor;
using UnityEngine;
namespace Editor
{
[InitializeOnLoad]
public class HierarchyEnhancer
{
// Define the width of the toggle area
private const float TOGGLE_WIDTH = 16f;
static HierarchyEnhancer()
{
// Subscribe to the hierarchy item GUI event
EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyItemGUI;
}
private static void OnHierarchyItemGUI(int instanceID, Rect selectionRect)
{
// Get the GameObject associated with this instance ID
GameObject obj = EditorUtility.EntityIdToObject(instanceID) as GameObject;
if (obj == null) return;
// Calculate the position for the Toggle (Aligned to the far right)
// selectionRect.xMax gives us the right boundary of the Hierarchy row
Rect toggleRect = new Rect(selectionRect);
toggleRect.x = selectionRect.xMax - TOGGLE_WIDTH;
toggleRect.width = TOGGLE_WIDTH;
// Check current active state
bool isActive = obj.activeSelf;
// Handle UI and changes
EditorGUI.BeginChangeCheck();
// Set the color based on active state (Optional polish)
Color originalColor = GUI.color;
if (!isActive) GUI.color = new Color(1f, 1f, 1f, 0.5f); // Dim the toggle if inactive
bool newActive = EditorGUI.Toggle(toggleRect, isActive);
GUI.color = originalColor; // Restore original color for other elements
if (EditorGUI.EndChangeCheck())
{
// Record undo before applying the change
Undo.RecordObject(obj, "Toggle GameObject Active State");
obj.SetActive(newActive);
// If it's a Prefab, mark the scene as dirty to ensure it saves
if (!Application.isPlaying)
{
EditorUtility.SetDirty(obj);
}
}
}
}
}
// private static void OnHierarchyItemGUI(int instanceID, Rect selectionRect)
// {
// // Get the GameObject associated with this instance ID
// GameObject obj = EditorUtility.EntityIdToObject(instanceID) as GameObject;
// if (obj == null) return;
//
// // Calculate the position for the Toggle (Aligned to the far right)
// // selectionRect.xMax gives us the right boundary of the Hierarchy row
// Rect toggleRect = new Rect(selectionRect);
// toggleRect.x = selectionRect.xMax - TOGGLE_WIDTH;
// toggleRect.width = TOGGLE_WIDTH;
//
// // Check current active state
// bool isActive = obj.activeSelf;
//
// // Handle UI and changes
// EditorGUI.BeginChangeCheck();
//
// // Set the color based on active state (Optional polish)
// Color originalColor = GUI.color;
// if (!isActive) GUI.color = new Color(1f, 1f, 1f, 0.5f); // Dim the toggle if inactive
//
// bool newActive = EditorGUI.Toggle(toggleRect, isActive);
//
// GUI.color = originalColor; // Restore original color for other elements
//
// if (EditorGUI.EndChangeCheck())
// {
// // Record undo before applying the change
// Undo.RecordObject(obj, "Toggle GameObject Active State");
// obj.SetActive(newActive);
//
// // If it's a Prefab, mark the scene as dirty to ensure it saves
// if (!Application.isPlaying)
// {
// EditorUtility.SetDirty(obj);
// }
// }
// }
// }
// }

View File

@@ -1,84 +1,84 @@
// ===============================================================================
// HierarchySeparators - Visual Organization for Unity Hierarchy
// // ===============================================================================
// // HierarchySeparators - Visual Organization for Unity Hierarchy
// //
// // Creator: Scove
// // Last Updated: 2024-05-08
// // Version: 2.0
// //
// // Purpose:
// // Converts GameObjects starting with "//" into visual separators or headers.
// // This helps organize large scenes by creating clear, readable sections.
// //
// // Key Features:
// // 1. Automatic formatting: "// player" becomes a bold, centered "PLAYER" header.
// // 2. Custom background: Draws a distinctive bar to separate different logic groups.
// // 3. Clean UI: Strips out the "//" prefix for a professional look in the editor.
// //
// // How to Use:
// // 1. Place this script in an 'Editor' folder.
// // 2. Create an Empty GameObject in your Hierarchy.
// // 3. Rename it starting with "//" (e.g., "// --- ENVIRONMENT ---").
// // ===============================================================================
//
// Creator: Scove
// Last Updated: 2024-05-08
// Version: 2.0
// using UnityEditor;
// using UnityEngine;
//
// Purpose:
// Converts GameObjects starting with "//" into visual separators or headers.
// This helps organize large scenes by creating clear, readable sections.
// namespace Editor
// {
// [InitializeOnLoad]
// public class HierarchySeparators
// {
// // Custom styling colors
// private static readonly Color HeaderBackgroundColor = new Color(0.22f, 0.22f, 0.22f, 1f);
// private static readonly Color TextColor = new Color(0.9f, 0.9f, 0.9f, 1f);
// private static readonly Color BorderColor = new Color(0.15f, 0.15f, 0.15f, 1f);
//
// Key Features:
// 1. Automatic formatting: "// player" becomes a bold, centered "PLAYER" header.
// 2. Custom background: Draws a distinctive bar to separate different logic groups.
// 3. Clean UI: Strips out the "//" prefix for a professional look in the editor.
// static HierarchySeparators()
// {
// // Subscribe to the hierarchy item GUI event
// EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyItemGUI;
// }
//
// How to Use:
// 1. Place this script in an 'Editor' folder.
// 2. Create an Empty GameObject in your Hierarchy.
// 3. Rename it starting with "//" (e.g., "// --- ENVIRONMENT ---").
// ===============================================================================
using UnityEditor;
using UnityEngine;
namespace Editor
{
[InitializeOnLoad]
public class HierarchySeparators
{
// Custom styling colors
private static readonly Color HeaderBackgroundColor = new Color(0.22f, 0.22f, 0.22f, 1f);
private static readonly Color TextColor = new Color(0.9f, 0.9f, 0.9f, 1f);
private static readonly Color BorderColor = new Color(0.15f, 0.15f, 0.15f, 1f);
static HierarchySeparators()
{
// Subscribe to the hierarchy item GUI event
EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyItemGUI;
}
private static void OnHierarchyItemGUI(int instanceID, Rect selectionRect)
{
// Get the object from the instance ID
GameObject obj = EditorUtility.EntityIdToObject(instanceID) as GameObject;
// Trigger only if the name starts with "//"
if (obj != null && obj.name.StartsWith("//"))
{
// 1. Draw Background
EditorGUI.DrawRect(selectionRect, HeaderBackgroundColor);
// 2. Draw Subtle Bottom Border for better depth
Rect borderRect = new Rect(selectionRect.x, selectionRect.yMax - 1f, selectionRect.width, 1f);
EditorGUI.DrawRect(borderRect, BorderColor);
// 3. Configure Text Style
GUIStyle headerStyle = new GUIStyle(EditorStyles.boldLabel)
{
alignment = TextAnchor.MiddleCenter,
normal = { textColor = TextColor },
fontSize = 11,
fontStyle = FontStyle.Bold
};
// 4. Clean and Format the string
// Removes "//", trims spaces, and converts to Uppercase
string headerName = obj.name.Replace("//", "").Trim().ToUpper();
// 5. Draw the Header Label
EditorGUI.LabelField(selectionRect, headerName, headerStyle);
// Optional: To prevent selecting the separator as a normal object
// (keeps focus on actual game objects), uncomment the lines below:
if (Event.current.type == EventType.MouseDown && selectionRect.Contains(Event.current.mousePosition))
{
Selection.activeGameObject = null;
}
}
}
}
}
// private static void OnHierarchyItemGUI(int instanceID, Rect selectionRect)
// {
// // Get the object from the instance ID
// GameObject obj = EditorUtility.EntityIdToObject(instanceID) as GameObject;
//
// // Trigger only if the name starts with "//"
// if (obj != null && obj.name.StartsWith("//"))
// {
// // 1. Draw Background
// EditorGUI.DrawRect(selectionRect, HeaderBackgroundColor);
//
// // 2. Draw Subtle Bottom Border for better depth
// Rect borderRect = new Rect(selectionRect.x, selectionRect.yMax - 1f, selectionRect.width, 1f);
// EditorGUI.DrawRect(borderRect, BorderColor);
//
// // 3. Configure Text Style
// GUIStyle headerStyle = new GUIStyle(EditorStyles.boldLabel)
// {
// alignment = TextAnchor.MiddleCenter,
// normal = { textColor = TextColor },
// fontSize = 11,
// fontStyle = FontStyle.Bold
// };
//
// // 4. Clean and Format the string
// // Removes "//", trims spaces, and converts to Uppercase
// string headerName = obj.name.Replace("//", "").Trim().ToUpper();
//
// // 5. Draw the Header Label
// EditorGUI.LabelField(selectionRect, headerName, headerStyle);
//
// // Optional: To prevent selecting the separator as a normal object
// // (keeps focus on actual game objects), uncomment the lines below:
//
// if (Event.current.type == EventType.MouseDown && selectionRect.Contains(Event.current.mousePosition))
// {
// Selection.activeGameObject = null;
// }
//
// }
// }
// }
// }

View File

@@ -0,0 +1,23 @@
using UnityEditor;
using UnityEngine;
using UnityEditor.IMGUI.Controls;
using System.Reflection;
public class ReflectTreeViewState : EditorWindow
{
[MenuItem("Tools/Reflect TreeViewState")]
public static void ShowWindow()
{
var type = typeof(TreeViewState);
var sb = new System.Text.StringBuilder();
foreach (var p in type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
sb.AppendLine("Prop: " + p.Name + " - " + p.PropertyType.FullName);
}
foreach (var f in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
sb.AppendLine("Field: " + f.Name + " - " + f.FieldType.FullName);
}
Debug.Log(sb.ToString());
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 52d65087605ff1841a952350f53f3a3e

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4f008884399e3704fb50da2d7d219083
guid: 65c18d699fcadad459bc3e16558c2bd2
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7db84c72b2408b24da5a225550b562ff
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 05b1eef81f23d6648992c93437892982
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa3dc305dd00dad49bbc1ff3996b055d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,79 @@
fileFormatVersion: 2
guid: 5651992cdad94894a3af7dc3f1da9170
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 0
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 0
Exclude PSM: 0
Exclude PSP2: 0
Exclude SamsungTV: 0
Exclude Tizen: 0
Exclude WebGL: 0
Exclude WiiU: 0
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 0
Exclude XboxOne: 0
Exclude iOS: 0
Exclude tvOS: 0
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
N3DS:
enabled: 1
settings: {}
PS4:
enabled: 1
settings: {}
PSM:
enabled: 1
settings: {}
PSP2:
enabled: 1
settings: {}
SamsungTV:
enabled: 1
settings: {}
Tizen:
enabled: 1
settings: {}
WebGL:
enabled: 1
settings: {}
WiiU:
enabled: 1
settings: {}
WindowsStoreApps:
enabled: 1
settings:
CPU: AnyCPU
XboxOne:
enabled: 1
settings: {}
iOS:
enabled: 1
settings: {}
tvOS:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,79 @@
fileFormatVersion: 2
guid: 5978f8f3dd274e848fbb7a123bde1fb9
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 0
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 0
Exclude PSM: 0
Exclude PSP2: 0
Exclude SamsungTV: 0
Exclude Tizen: 0
Exclude WebGL: 0
Exclude WiiU: 0
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 0
Exclude XboxOne: 0
Exclude iOS: 0
Exclude tvOS: 0
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
N3DS:
enabled: 1
settings: {}
PS4:
enabled: 1
settings: {}
PSM:
enabled: 1
settings: {}
PSP2:
enabled: 1
settings: {}
SamsungTV:
enabled: 1
settings: {}
Tizen:
enabled: 1
settings: {}
WebGL:
enabled: 1
settings: {}
WiiU:
enabled: 1
settings: {}
WindowsStoreApps:
enabled: 1
settings:
CPU: AnyCPU
XboxOne:
enabled: 1
settings: {}
iOS:
enabled: 1
settings: {}
tvOS:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a73a691127ad93941b89586292291dab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: d2a8f0021d6b47c5923d8972dfb81ef1
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Android:
enabled: 1
settings: {}
Any:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude N3DS: 1
Exclude OSXIntel: 0
Exclude OSXIntel64: 0
Exclude OSXUniversal: 0
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
Linux:
enabled: 1
settings: {}
Linux64:
enabled: 1
settings: {}
LinuxUniversal:
enabled: 1
settings: {}
OSXIntel:
enabled: 1
settings: {}
OSXIntel64:
enabled: 1
settings: {}
OSXUniversal:
enabled: 1
settings: {}
PSM:
enabled: 0
settings: {}
Win:
enabled: 1
settings: {}
Win64:
enabled: 1
settings: {}
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 1e0a9643dc0d4b46bf2321f72c4e503e
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Android:
enabled: 1
settings: {}
Any:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude N3DS: 1
Exclude OSXIntel: 0
Exclude OSXIntel64: 0
Exclude OSXUniversal: 0
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
Linux:
enabled: 1
settings: {}
Linux64:
enabled: 1
settings: {}
LinuxUniversal:
enabled: 1
settings: {}
OSXIntel:
enabled: 1
settings: {}
OSXIntel64:
enabled: 1
settings: {}
OSXUniversal:
enabled: 1
settings: {}
PSM:
enabled: 0
settings: {}
Win:
enabled: 1
settings: {}
Win64:
enabled: 1
settings: {}
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 47a84ebde4ec47fabb620b30cc7a3e5c
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 1
settings:
Exclude Android: 0
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude N3DS: 0
Exclude OSXIntel: 0
Exclude OSXIntel64: 0
Exclude OSXUniversal: 0
Exclude PS4: 0
Exclude PSM: 0
Exclude PSP2: 0
Exclude SamsungTV: 0
Exclude Tizen: 0
Exclude WebGL: 0
Exclude WiiU: 0
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 0
Exclude XboxOne: 0
Exclude iOS: 0
Exclude tvOS: 0
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 47a84ebde4ec47fabb620b30cc7a096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: a4865f1ab4504ed8a368670db22f409c
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a4865f1ab4504ed8a368670db22f096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 61824742f78323c439d83403f8272d41
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 74721b9f0af448f5ae2e91102a1a5edd
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 1
settings:
Exclude Android: 0
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude N3DS: 0
Exclude OSXIntel: 0
Exclude OSXIntel64: 0
Exclude OSXUniversal: 0
Exclude PS4: 0
Exclude PSM: 0
Exclude PSP2: 0
Exclude SamsungTV: 0
Exclude Tizen: 0
Exclude WebGL: 0
Exclude WiiU: 0
Exclude Win: 0
Exclude Win64: 0
Exclude WindowsStoreApps: 0
Exclude XboxOne: 0
Exclude iOS: 0
Exclude tvOS: 0
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,202 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Sirenix.Serialization.Config</name>
</assembly>
<members>
<member name="T:Sirenix.Serialization.CustomLogger">
<summary>
A helper class for quickly and easily defining custom loggers.
</summary>
<seealso cref="T:Sirenix.Serialization.ILogger" />
</member>
<member name="M:Sirenix.Serialization.CustomLogger.#ctor(System.Action{System.String},System.Action{System.String},System.Action{System.Exception})">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.Serialization.CustomLogger.LogWarning(System.String)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.Serialization.CustomLogger.LogError(System.String)">
<summary>
Not yet documented.
</summary>
</member>
<member name="M:Sirenix.Serialization.CustomLogger.LogException(System.Exception)">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.Serialization.DataFormat">
<summary>
Specifies a data format to read and write in.
</summary>
</member>
<member name="F:Sirenix.Serialization.DataFormat.Binary">
<summary>
A custom packed binary format. This format is most efficient and almost allocation-free,
but its serialized data is not human-readable.
</summary>
</member>
<member name="F:Sirenix.Serialization.DataFormat.JSON">
<summary>
A JSON format compliant with the json specification found at "http://www.json.org/".
<para />
This format has rather sluggish performance and allocates frightening amounts of string garbage.
</summary>
</member>
<member name="F:Sirenix.Serialization.DataFormat.Nodes">
<summary>
A format that does not serialize to a byte stream, but to a list of data nodes in memory
which can then be serialized by Unity.
<para />
This format is highly inefficient, and is primarily used for ensuring that Unity assets
are mergeable by individual values when saved in Unity's text format. This makes
serialized values more robust and data recovery easier in case of issues.
<para />
This format is *not* recommended for use in builds.
</summary>
</member>
<member name="T:Sirenix.Serialization.DefaultLoggers">
<summary>
Defines default loggers for serialization and deserialization. This class and all of its loggers are thread safe.
</summary>
</member>
<member name="P:Sirenix.Serialization.DefaultLoggers.DefaultLogger">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.Serialization.DefaultLoggers.UnityLogger">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.Serialization.ErrorHandlingPolicy">
<summary>
The policy for handling errors during serialization and deserialization.
</summary>
</member>
<member name="F:Sirenix.Serialization.ErrorHandlingPolicy.Resilient">
<summary>
Attempts will be made to recover from errors and continue serialization. Data may become invalid.
</summary>
</member>
<member name="F:Sirenix.Serialization.ErrorHandlingPolicy.ThrowOnErrors">
<summary>
Exceptions will be thrown when errors are logged.
</summary>
</member>
<member name="F:Sirenix.Serialization.ErrorHandlingPolicy.ThrowOnWarningsAndErrors">
<summary>
Exceptions will be thrown when warnings or errors are logged.
</summary>
</member>
<member name="T:Sirenix.Serialization.GlobalSerializationConfig">
<summary>
Not yet documented.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.ODIN_SERIALIZATION_CAUTIONARY_WARNING_TEXT">
<summary>
Text for the cautionary serialization warning shown in the inspector.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.ODIN_SERIALIZATION_CAUTIONARY_WARNING_BUTTON_TEXT">
<summary>
Text for the hide button for the cautionary serialization warning shown in the inspector.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.ODIN_PREFAB_CAUTIONARY_WARNING_BUTTON_TEXT">
<summary>
Text for the hide button for the cautionary prefab warning shown in the inspector.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.HideSerializationCautionaryMessage">
<summary>
Whether the user has chosen to hide the cautionary serialization warning.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.HideOdinSerializeAttributeWarningMessages">
<summary>
Whether the user has chosen to hide the warning messages related to the OdinSerialize attribute.
</summary>
</member>
<member name="F:Sirenix.Serialization.GlobalSerializationConfig.HideNonSerializedShowInInspectorWarningMessages">
<summary>
Whether the user has chosen to hide the warning messages related to the SerializeField and ShowInInspector attributes on non-serialized members.
</summary>
</member>
<member name="P:Sirenix.Serialization.GlobalSerializationConfig.Logger">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.Serialization.GlobalSerializationConfig.EditorSerializationFormat">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.Serialization.GlobalSerializationConfig.BuildSerializationFormat">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.Serialization.GlobalSerializationConfig.LoggingPolicy">
<summary>
Not yet documented.
</summary>
</member>
<member name="P:Sirenix.Serialization.GlobalSerializationConfig.ErrorHandlingPolicy">
<summary>
Not yet documented.
</summary>
</member>
<member name="T:Sirenix.Serialization.ILogger">
<summary>
Implements methods for logging warnings, errors and exceptions during serialization and deserialization.
</summary>
</member>
<member name="M:Sirenix.Serialization.ILogger.LogWarning(System.String)">
<summary>
Logs a warning.
</summary>
<param name="warning">The warning to log.</param>
</member>
<member name="M:Sirenix.Serialization.ILogger.LogError(System.String)">
<summary>
Logs an error.
</summary>
<param name="error">The error to log.</param>
</member>
<member name="M:Sirenix.Serialization.ILogger.LogException(System.Exception)">
<summary>
Logs an exception.
</summary>
<param name="exception">The exception to log.</param>
</member>
<member name="T:Sirenix.Serialization.LoggingPolicy">
<summary>
The policy for which level of logging to do during serialization and deserialization.
</summary>
</member>
<member name="F:Sirenix.Serialization.LoggingPolicy.LogErrors">
<summary>
Not yet documented.
</summary>
</member>
<member name="F:Sirenix.Serialization.LoggingPolicy.LogWarningsAndErrors">
<summary>
Not yet documented.
</summary>
</member>
<member name="F:Sirenix.Serialization.LoggingPolicy.Silent">
<summary>
Not yet documented.
</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 74721b9f0af448f5ae2e91102a1a096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 5f3147f7af4c49739579b966c458f5e4
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5f3147f7af4c49739579b966c458096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 5c65184932ff4fd48a343e2360256baf
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5c65184932ff4fd48a343e236025096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,46 @@
fileFormatVersion: 2
guid: 4873f2a8bdae42baa0406e8a61366ca1
timeCreated: 1488828285
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
Any:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude N3DS: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PSM: 1
Exclude PSP2: 1
Exclude SamsungTV: 1
Exclude Tizen: 1
Exclude WebGL: 1
Exclude WiiU: 1
Exclude Win: 1
Exclude Win64: 1
Exclude WindowsStoreApps: 1
Exclude XboxOne: 1
Exclude iOS: 1
Exclude tvOS: 1
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4873f2a8bdae42baa0406e8a6136096f
timeCreated: 1488828285
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
<linker>
<assembly fullname="Sirenix.OdinInspector.Attributes" preserve="all"/>
<assembly fullname="Sirenix.Serialization.Config" preserve="all"/>
<assembly fullname="Sirenix.Serialization" preserve="all"/>
<assembly fullname="Sirenix.Utilities" preserve="all"/>
</linker>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1bec01331befdea4d9ed9033eabd68f8
timeCreated: 1613046886
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 39584688cfac6ff44bd94124e5bc1ca7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0f4ea59722339dc4c97cc07c4cd3a4fe
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a7d451a5ad971b64bb3d609eacff3a4c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f61850bb111c02e46b895c9950bf09a8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,26 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using UnityEditor;
using Sirenix.OdinInspector.Editor;
using Sirenix.OdinInspector;
using Sirenix.Utilities.Editor;
using Sirenix.Utilities;
public class BasicOdinEditorExampleWindow : OdinEditorWindow
{
[MenuItem("Tools/Odin/Demos/Odin Editor Window Demos/Basic Odin Editor Window")]
private static void OpenWindow()
{
var window = GetWindow<BasicOdinEditorExampleWindow>();
// Nifty little trick to quickly position the window in the middle of the editor.
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(700, 700);
}
[EnumToggleButtons]
[InfoBox("Inherit from OdinEditorWindow instead of EditorWindow in order to create editor windows like you would inspectors - by exposing members and using attributes.")]
public ViewTool SomeField;
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9a1e435d912810b4890a5ca4682f0e0f
timeCreated: 1514982238
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,60 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using Sirenix.OdinInspector.Editor;
using System.Linq;
using UnityEngine;
using Sirenix.Utilities.Editor;
using Sirenix.Serialization;
using UnityEditor;
using Sirenix.Utilities;
//
// Be sure to check out OdinMenuStyleExample.cs as well. It shows you various ways to customize the look and behaviour of OdinMenuTrees.
//
public class OdinMenuEditorWindowExample : OdinMenuEditorWindow
{
[MenuItem("Tools/Odin/Demos/Odin Editor Window Demos/Odin Menu Editor Window Example")]
private static void OpenWindow()
{
var window = GetWindow<OdinMenuEditorWindowExample>();
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 600);
}
[SerializeField]
private SomeData someData = new SomeData(); // Take a look at SomeData.cs to see how serialization works in Editor Windows.
protected override OdinMenuTree BuildMenuTree()
{
OdinMenuTree tree = new OdinMenuTree(supportsMultiSelect: true)
{
{ "Home", this, EditorIcons.House }, // Draws the this.someData field in this case.
{ "Odin Settings", null, SdfIconType.GearFill },
{ "Odin Settings/Color Palettes", ColorPaletteManager.Instance, SdfIconType.PaletteFill },
{ "Odin Settings/AOT Generation", AOTGenerationConfig.Instance, EditorIcons.SmartPhone },
{ "Player Settings", Resources.FindObjectsOfTypeAll<PlayerSettings>().FirstOrDefault() },
{ "Some Class", this.someData }
};
tree.AddAllAssetsAtPath("Odin Settings/More Odin Settings", "Plugins/Sirenix", typeof(ScriptableObject), true)
.AddThumbnailIcons();
tree.AddAssetAtPath("Odin Getting Started", "Plugins/Sirenix/Getting Started With Odin.asset");
tree.MenuItems.Insert(2, new OdinMenuItem(tree, "Menu Style", tree.DefaultMenuStyle));
tree.Add("Menu/Items/Are/Created/As/Needed", new GUIContent());
tree.Add("Menu/Items/Are/Created", new GUIContent("And can be overridden"));
tree.SortMenuItemsByName();
// As you can see, Odin provides a few ways to quickly add editors / objects to your menu tree.
// The API also gives you full control over the selection, etc..
// Make sure to check out the API Documentation for OdinMenuEditorWindow, OdinMenuTree and OdinMenuItem for more information on what you can do!
return tree;
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 66093819dfa2a0e49a76dae21d7c8a4c
timeCreated: 1515335602
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,117 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using Sirenix.OdinInspector.Editor;
using UnityEngine;
using UnityEditor;
using System.Linq;
using Sirenix.Utilities;
using System.Collections.Generic;
using Sirenix.Utilities.Editor;
public class OdinMenuStyleExample : OdinMenuEditorWindow
{
[MenuItem("Tools/Odin/Demos/Odin Editor Window Demos/Odin Menu Style Example")]
private static void OpenWindow()
{
var window = GetWindow<OdinMenuStyleExample>();
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 600);
}
protected override OdinMenuTree BuildMenuTree()
{
var tree = new OdinMenuTree(true);
var customMenuStyle = new OdinMenuStyle
{
BorderPadding = 0f,
AlignTriangleLeft = true,
TriangleSize = 16f,
TrianglePadding = 0f,
Offset = 20f,
Height = 23,
IconPadding = 0f,
BorderAlpha = 0.323f
};
tree.DefaultMenuStyle = customMenuStyle;
tree.Config.DrawSearchToolbar = true;
// Adds the custom menu style to the tree, so that you can play around with it.
// Once you are happy, you can press Copy C# Snippet copy its settings and paste it in code.
// And remove the "Menu Style" menu item from the tree.
tree.AddObjectAtPath("Menu Style", customMenuStyle);
for (int i = 0; i < 5; i++)
{
var customObject = new SomeCustomClass() { Name = i.ToString() };
var customMenuItem = new MyCustomMenuItem(tree, customObject);
tree.AddMenuItemAtPath("Custom Menu Items", customMenuItem);
}
tree.AddAllAssetsAtPath("Scriptable Objects in Plugins Tree", "Plugins", typeof(ScriptableObject), true, false);
tree.AddAllAssetsAtPath("Scriptable Objects in Plugins Flat", "Plugins", typeof(ScriptableObject), true, true);
tree.AddAllAssetsAtPath("Only Configs has Icons", "Plugins/Sirenix", true, false);
tree.EnumerateTree()
.AddThumbnailIcons()
.SortMenuItemsByName();
return tree;
}
//// The editor window itself can also be customized.
//protected override void OnEnable()
//{
// base.OnEnable();
// this.MenuWidth = 200;
// this.ResizableMenuWidth = true;
// this.WindowPadding = new Vector4(10, 10, 10, 10);
// this.DrawUnityEditorPreview = true;
// this.DefaultEditorPreviewHeight = 20;
// this.UseScrollView = true;
//}
private class MyCustomMenuItem : OdinMenuItem
{
private readonly SomeCustomClass instance;
public MyCustomMenuItem(OdinMenuTree tree, SomeCustomClass instance) : base(tree, instance.Name, instance)
{
this.instance = instance;
}
protected override void OnDrawMenuItem(Rect rect, Rect labelRect)
{
labelRect.x -= 16;
this.instance.Enabled = GUI.Toggle(labelRect.AlignMiddle(18).AlignLeft(16), this.instance.Enabled, GUIContent.none);
// Toggle selection when pressing space.
if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Space)
{
var selection = this.MenuTree.Selection
.Select(x => x.Value)
.OfType<SomeCustomClass>();
if (selection.Any())
{
var enabled = !selection.FirstOrDefault().Enabled;
selection.ForEach(x => x.Enabled = enabled);
Event.current.Use();
}
}
}
public override string SmartName { get { return this.instance.Name; } }
}
private class SomeCustomClass
{
public bool Enabled = true;
public string Name;
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e18d6c02692f0604f84f93cb250834f1
timeCreated: 1515762718
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,63 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using UnityEditor;
using UnityEngine;
using System.Collections.Generic;
using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities.Editor;
using Sirenix.OdinInspector;
using Sirenix.Utilities;
public class OverrideGetTargetsExampleWindow : OdinEditorWindow
{
[MenuItem("Tools/Odin/Demos/Odin Editor Window Demos/Draw Any Target")]
private static void OpenWindow()
{
GetWindow<OverrideGetTargetsExampleWindow>()
.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 600);
}
[HideLabel]
[Multiline(6)]
[SuffixLabel("This is drawn", true)]
public string Test;
// In the default implemenentation, it simply yield returns it self.
// But you can also override this behaviour and have your window render any
// object you like - Unity and non-Unity objects a like.
protected override IEnumerable<object> GetTargets()
{
// Draws this instance using Odin
yield return this;
// Draw non-unity objects.
yield return GUI.skin.settings; // GUISettings is a regular class.
// Or Unity objects.
yield return GUI.skin; // GUI.Skin is a ScriptableObject
}
// You can also override the method that draws each editor.
// This come in handy if you want to add titles, boxes, or draw them in a GUI.Window etc...
protected override void DrawEditor(int index)
{
var currentDrawingEditor = this.CurrentDrawingTargets[index];
SirenixEditorGUI.Title(
title: currentDrawingEditor.ToString(),
subtitle: currentDrawingEditor.GetType().GetNiceFullName(),
textAlignment: TextAlignment.Left,
horizontalLine: true
);
base.DrawEditor(index);
if (index != this.CurrentDrawingTargets.Count - 1)
{
SirenixEditorGUI.DrawThickHorizontalSeparator(15, 15);
}
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5957605b5da2ea642a9d9037f88d3627
timeCreated: 1514982238
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,64 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities;
using Sirenix.Utilities.Editor;
using UnityEngine;
public class SomeClass2
{
[HideLabel, Title("Title", horizontalLine: false, bold: false)]
public string Title = "Some Title";
[TextArea(10, 20)]
public string Description = "Some description.";
}
public class QuicklyInspectObjects
{
private SomeClass2 someObject = new SomeClass2();
[Button(ButtonSizes.Large)]
[Title("OdinEditorWindow.InspectObject examples", "Make sure to checkout QuicklyInspectObjects.cs")]
private void InspectObject()
{
OdinEditorWindow.InspectObject(this.someObject);
}
[Button(ButtonSizes.Large), HorizontalGroup("row1")]
private void InDropDownAutoHeight()
{
var btnRect = GUIHelper.GetCurrentLayoutRect();
OdinEditorWindow.InspectObjectInDropDown(this.someObject, btnRect, btnRect.width);
}
[Button(ButtonSizes.Large), HorizontalGroup("row1")]
private void InDropDown()
{
var btnRect = GUIHelper.GetCurrentLayoutRect();
OdinEditorWindow.InspectObjectInDropDown(this.someObject, btnRect, new Vector2(btnRect.width, 100));
}
[Button(ButtonSizes.Large), HorizontalGroup("row2")]
private void InCenter()
{
var window = OdinEditorWindow.InspectObject(this.someObject);
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(270, 200);
}
[Button(ButtonSizes.Large), HorizontalGroup("row2")]
private void OtherStuffYouCanDo()
{
var window = OdinEditorWindow.InspectObject(this.someObject);
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(270, 200);
window.titleContent = new GUIContent("Custom title", EditorIcons.RulerRect.Active);
window.OnClose += () => Debug.Log("Window Closed");
window.OnBeginGUI += () => GUILayout.Label("-----------");
window.OnEndGUI += () => GUILayout.Label("-----------");
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 503c8a9f7cfad80439b12cb7464b21e4
timeCreated: 1515088606
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,33 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using UnityEditor;
using System;
[HideLabel]
[Serializable]
public class SomeData
{
[MultiLineProperty(3), Title("Basic Odin Menu Editor Window", "Inherit from OdinMenuEditorWindow, and build your menu tree")]
public string Test1 = "This value is persistent cross reloads, but will reset once you restart Unity or close the window.";
[MultiLineProperty(3), ShowInInspector, NonSerialized]
public string Test2 = "This value is not persistent cross reloads, and will reset once you hit play or recompile.";
[MultiLineProperty(3), ShowInInspector]
private string Test3
{
get
{
return EditorPrefs.GetString("OdinDemo.PersistentString",
"This value is persistent forever, even cross Unity projects. But it's not saved together " +
"with your project. That's where ScriptableObejcts and OdinEditorWindows come in handy.");
}
set
{
EditorPrefs.SetString("OdinDemo.PersistentString", value);
}
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 23d6e50778fcc414388c45efaf3da20f
timeCreated: 1516273612
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
#if UNITY_EDITOR
namespace Sirenix.OdinInspector.Demos
{
using UnityEngine;
using UnityEditor;
using Sirenix.OdinInspector.Editor;
using Sirenix.OdinInspector;
using Sirenix.Utilities.Editor;
using Sirenix.Utilities;
public class SomeTextureToolWindow : OdinEditorWindow
{
[MenuItem("Tools/Odin/Demos/Odin Editor Window Demos/Some Texture Tool")]
private static void OpenWindow()
{
var window = GetWindow<SomeTextureToolWindow>();
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(600, 600);
window.titleContent = new GUIContent("Some Texture Tool Window");
}
[BoxGroup("Settings")]
[FolderPath(RequireExistingPath = true)]
public string OutputPath
{
// Use EditorPrefs to hold persisntent user-variables.
get { return EditorPrefs.GetString("SomeTextureToolWindow.OutputPath"); }
set { EditorPrefs.SetString("SomeTextureToolWindow.OutputPath", value); }
}
[EnumToggleButtons]
[BoxGroup("Settings")]
public ScaleMode ScaleMode;
[HorizontalGroup(0.5f, PaddingRight = 5, LabelWidth = 70)]
public Texture[] Textures = new Texture[8];
[ReadOnly]
[HorizontalGroup]
[InlineEditor(InlineEditorModes.LargePreview)]
public Texture Preview;
[Button(ButtonSizes.Gigantic), GUIColor(0, 1, 0)]
public void PerformSomeAction()
{
}
}
}
#endif

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2a14e003cbbbc8446aace397291feeae
timeCreated: 1514333524
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fe4970195facd664dbd38d1cbf2100c3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 52c0fd243c6c01e4d9efa03616b655d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 85e532eecf67ab545b2a5a28f1a22894
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,30 @@
Odin Inspector makes use of the Bootstrap icon library.
The library has been packed into the SdfIconAtlas.png
file as SDF data.
Bootstrap is released under the following license:
---
The MIT License (MIT)
Copyright (c) 2011-2018 Twitter, Inc.
Copyright (c) 2011-2018 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3fdc67fad3e362e47b5dd365a0bbdd7f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 90eaa0dc28c1934408dc1c02e13a507f
timeCreated: 1628274352
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e22dad2728c77344f8da0d2789866a0e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,51 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Hidden/Sirenix/Editor/ExtractSprite"
{
Properties
{
_MainTex("Texture", 2D) = "white" {}
_Color("Color", Color) = (1,1,1,1)
_Rect("Rect", Vector) = (0,0,0,0)
_TexelSize("TexelSize", Vector) = (0,0,0,0)
}
SubShader
{
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _Rect;
v2f vert(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag(v2f i) : SV_Target {
float2 uv = i.uv;
uv *= _Rect.zw;
uv += _Rect.xy;
return tex2D(_MainTex, uv);
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0675e2791073a4147b190e55f1da7ac2
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,98 @@
Shader "Hidden/Sirenix/OdinGUIShader"
{
SubShader
{
Lighting Off
Cull Off
ZWrite Off
ZTest Always
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float _SirenixOdin_GreyScale;
float4 _SirenixOdin_GUIColor;
float4 _SirenixOdin_GUIUv;
float4 _SirenixOdin_HueColor;
v2f vert(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
float test1(float x, float y) {
if (x >= y) {
return 0;
} else {
return 1;
}
}
float test2(float x, float y) {
return step(x, y);
}
float3 rgb2hsv(float3 c) {
float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g));
float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
float3 hsv2rgb(float3 c) {
c = float3(c.x, clamp(c.yz, 0.0, 1.0));
float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float4 frag(v2f i) : SV_Target {
float2 uv = i.uv;
uv.y = 1 - uv.y;
uv.x = _SirenixOdin_GUIUv.x + uv.x * _SirenixOdin_GUIUv.z;
uv.y = _SirenixOdin_GUIUv.y + uv.y * _SirenixOdin_GUIUv.w;
uv.y = 1 - uv.y;
// Greyscale
float4 col = tex2D(_MainTex, uv);
float3 greyScale = (0.3 * col.r) + (0.59 * col.g) + (0.11 * col.b);
col.rgb = lerp(col.rgb, greyScale, _SirenixOdin_GreyScale);
// Change hue
float3 h = col.rgb;
h = rgb2hsv(h);
float hue = rgb2hsv(_SirenixOdin_HueColor.rgb).x;
h.x = hue;
h = hsv2rgb(h);
col.rgb = lerp(col.rgb, h, _SirenixOdin_HueColor.a);
// Blend color
col *= _SirenixOdin_GUIColor;
return col;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 7619c1ca61a5ef94ca78ddfa69941dad
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Hidden/Sirenix/Editor/GUIIcon"
{
Properties
{
_MainTex("Texture", 2D) = "white" {}
_Color("Color", Color) = (1,1,1,1)
}
SubShader
{
Blend SrcAlpha Zero
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _Color;
v2f vert(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag(v2f i) : SV_Target {
// drop shadow:
// float texelSize = 1.0 / 34.0;
// float2 shadowUv = clamp(i.uv + float2(-texelSize, texelSize * 2), float2(0, 0), float2(1, 1));
// fixed4 shadow = fixed4(0, 0, 0, tex2D(_MainTex, shadowUv).a);
fixed4 col = _Color;
col.a *= tex2D(_MainTex, i.uv).a;
// drop shadow:
// col = lerp(shadow, col, col.a);
return col;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 2ad0a53eacb91bd4fbe0dc668bf25e6f
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,95 @@
Shader "Hidden/Sirenix/SdfIconShader"
{
SubShader
{
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
sampler2D _SirenixOdin_SdfTex;
float _SirenixOdin_EdgeOffset;
float4 _SirenixOdin_Color;
float4 _SirenixOdin_BgColor;
float4 _SirenixOdin_Uv;
v2f vert(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
float samplePixel(float2 uv) {
return tex2D(_SirenixOdin_SdfTex, uv).a;
}
float linearstep(float lo, float hi, float input) {
float diff = hi - lo;
float offset = input - lo;
return min(1.0, max(0.0, offset / diff));
}
float sampleDist(float2 uv, float dx, float edge, float padding) {
float dist = samplePixel(uv);
float p = -abs((dx * 3072.0) / -padding);
float a = min(1, max(0, edge - p * 0.33333));
float b = max(0, min(1, edge + p * 0.33333));
return smoothstep(b, a, dist);
}
float4 frag(v2f i) : SV_Target {
float2 uv = i.uv;
uv.y = 1 - uv.y;
uv.x = _SirenixOdin_Uv.x + uv.x * _SirenixOdin_Uv.z;
uv.y = _SirenixOdin_Uv.y + uv.y * _SirenixOdin_Uv.w;
uv.y = 1 - uv.y;
float alpha = 0.0;
float edge = 0.5019608 + _SirenixOdin_EdgeOffset;
if (_SirenixOdin_BgColor.a > 0.01) {
float3 colorBg = _SirenixOdin_BgColor.rgb;
float3 colorFg = _SirenixOdin_Color.rgb;
float padding = 8;
float dx = ddx(uv.x);
float2 t = float2(dx * 0.333333, 0);
float3 subDist = float3(
sampleDist(uv.xy - t, dx, edge, padding),
sampleDist(uv.xy, dx, edge, padding),
sampleDist(uv.xy + t, dx, edge, padding));
float3 color = lerp(colorBg, colorFg, clamp(subDist, 0.0, 1.0));
float alpha = min(1, subDist.r + subDist.g + subDist.b);
float4 col = float4(color, alpha * _SirenixOdin_Color.a);
return col;
} else {
float padding = 8;
float dx = ddx(uv.x);
float alpha = sampleDist(uv, dx, edge, padding);
float4 col = _SirenixOdin_Color;
col.a *= alpha;
return col;
}
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 99e0f263ae4ed2d4d962a2e995dff6df
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,13 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -262940062, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: OdinPathLookup
m_EditorClassIdentifier:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 08379ccefc05200459f90a1c0711a340
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -0,0 +1,128 @@
fileFormatVersion: 2
guid: 2a0112a98875dfd488b5d10bdb8a4903
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 10
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6a812b2471e042c4a8f0597af5f87c25
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1422588a87e1db047a83fece7f33f3d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1726182683, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: AOTGenerationConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.Serialization.AOTGenerationConfig
automateBeforeBuilds: 0
deleteDllAfterBuilds: 1
AutomateForAllAOTPlatforms: 1
automateForPlatforms: 0900000014000000
supportSerializedTypes: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c406cd3a19fda034faa814326f7e46b3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,136 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 772478971, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: ColorPaletteManager
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.ColorPaletteManager
colorPalettes:
- name: Country
showAlpha: 0
colors:
- {r: 0.776, g: 0.651, b: 0.349, a: 1}
- {r: 0.863, g: 0.761, b: 0.631, a: 1}
- {r: 0.91, g: 0.831, b: 0.686, a: 1}
- {r: 0.961, g: 0.902, b: 0.788, a: 1}
- {r: 0.753, g: 0.714, b: 0.667, a: 1}
- {r: 0.478, g: 0.573, b: 0.431, a: 1}
- {r: 0.314, g: 0.427, b: 0.31, a: 1}
- {r: 0.596, g: 0.345, b: 0.235, a: 1}
- {r: 0.545, g: 0.329, b: 0.318, a: 1}
- {r: 0.647, g: 0.204, b: 0.227, a: 1}
- {r: 0.435, g: 0.161, b: 0.063, a: 1}
- {r: 0.357, g: 0.333, b: 0.278, a: 1}
- {r: 0.976, g: 0.98, b: 0.961, a: 1}
- {r: 0.165, g: 0.271, b: 0.11, a: 1}
- name: Beach
showAlpha: 0
colors:
- {r: 0.996, g: 0.906, b: 0.459, a: 1}
- {r: 0.314, g: 0.592, b: 0.035, a: 1}
- {r: 0.486, g: 0.953, b: 0.875, a: 1}
- {r: 0.996, g: 0.82, b: 0.212, a: 1}
- {r: 1, g: 0.769, b: 0.165, a: 1}
- {r: 0.804, g: 0.835, b: 0.753, a: 1}
- {r: 1, g: 0.769, b: 0.165, a: 1}
- {r: 1, g: 0.702, b: 0.063, a: 1}
- {r: 1, g: 0.898, b: 0.569, a: 1}
- name: Fall
showAlpha: 0
colors:
- {r: 0.82, g: 0.722, b: 0.318, a: 1}
- {r: 0.537, g: 0.192, b: 0.153, a: 1}
- {r: 0.996, g: 0.812, b: 0.012, a: 1}
- {r: 1, g: 0.431, b: 0.02, a: 1}
- {r: 0.937, g: 0.267, b: 0.094, a: 1}
- {r: 0.42, g: 0.212, b: 0.18, a: 1}
- {r: 0.992, g: 0.651, b: 0.004, a: 1}
- {r: 0.89, g: 0.353, b: 0.086, a: 1}
- {r: 1, g: 0.443, b: 0.004, a: 1}
- {r: 0.682, g: 0.275, b: 0.137, a: 1}
- {r: 0.306, g: 0.231, b: 0.114, a: 1}
- {r: 0.384, g: 0.416, b: 0.082, a: 1}
- {r: 0.165, g: 0.157, b: 0.008, a: 1}
- {r: 0.906, g: 0.635, b: 0.227, a: 1}
- {r: 0.82, g: 0.722, b: 0.318, a: 1}
- {r: 0.745, g: 0.435, b: 0.031, a: 1}
- {r: 0.765, g: 0.682, b: 0.569, a: 1}
- {r: 0.18, g: 0.149, b: 0.075, a: 1}
- {r: 0.702, g: 0.451, b: 0.059, a: 1}
- name: Passion
showAlpha: 0
colors:
- {r: 0.925, g: 0.682, b: 0.624, a: 1}
- {r: 0.188, g: 0.114, b: 0.224, a: 1}
- {r: 0.349, g: 0.11, b: 0.231, a: 1}
- {r: 0.435, g: 0.267, b: 0.357, a: 1}
- name: Sepia
showAlpha: 0
colors:
- {r: 0.353, g: 0.098, b: 0.02, a: 1}
- {r: 0.663, g: 0.188, b: 0.114, a: 1}
- {r: 0.906, g: 0.643, b: 0.082, a: 1}
- {r: 0.996, g: 0.839, b: 0.322, a: 1}
- {r: 0.486, g: 0.392, b: 0.02, a: 1}
- {r: 0.294, g: 0.235, b: 0.012, a: 1}
- name: Floral
showAlpha: 0
colors:
- {r: 0.855, g: 0.518, b: 0.412, a: 1}
- {r: 0.827, g: 0.294, b: 0.333, a: 1}
- {r: 0.737, g: 0.118, b: 0.208, a: 1}
- {r: 0.549, g: 0.149, b: 0.235, a: 1}
- {r: 0.949, g: 0.925, b: 0.784, a: 1}
- {r: 0.945, g: 0.882, b: 0.69, a: 1}
- {r: 0.871, g: 0.812, b: 0.698, a: 1}
- {r: 0.4, g: 0.196, b: 0.243, a: 1}
- {r: 0.271, g: 0.157, b: 0.227, a: 1}
- name: Underwater
showAlpha: 0
colors:
- {r: 0.663, g: 0.416, b: 0.733, a: 1}
- {r: 0.2, g: 0.6, b: 0.698, a: 1}
- {r: 0.11, g: 0.49, b: 0.698, a: 1}
- {r: 0.439, g: 0.627, b: 0.227, a: 1}
- {r: 0, g: 0.357, b: 0.604, a: 1}
- {r: 0.067, g: 0.271, b: 0.353, a: 1}
- name: Breeze
showAlpha: 0
colors:
- {r: 0.706, g: 1, b: 0, a: 1}
- {r: 0.651, g: 1, b: 0.404, a: 1}
- {r: 0.122, g: 1, b: 0.514, a: 1}
- {r: 0.216, g: 0.894, b: 0.961, a: 1}
- {r: 0.4, g: 1, b: 0.882, a: 1}
- {r: 0.027, g: 0.792, b: 0.8, a: 1}
- name: Clovers
showAlpha: 0
colors:
- {r: 0.431, g: 0.549, b: 0.102, a: 1}
- {r: 0.671, g: 0.714, b: 0.071, a: 1}
- {r: 0.969, g: 0.949, b: 0.831, a: 1}
- {r: 0.886, g: 0.902, b: 0.702, a: 1}
- {r: 0.753, g: 0.824, b: 0.627, a: 1}
- {r: 0.404, g: 0.6, b: 0.4, a: 1}
- name: Tropical
showAlpha: 0
colors:
- {r: 0.953, g: 0.647, b: 0.804, a: 1}
- {r: 0.965, g: 0.741, b: 0.871, a: 1}
- {r: 0.949, g: 0.549, b: 0.643, a: 1}
- {r: 0.992, g: 0.659, b: 0.498, a: 1}
- {r: 0.976, g: 0.792, b: 0.729, a: 1}
- {r: 0.984, g: 0.855, b: 0.725, a: 1}
- {r: 0.259, g: 0.882, b: 0.663, a: 1}
- {r: 0.349, g: 0.753, b: 0.78, a: 1}
- {r: 0.725, g: 0.976, b: 0.91, a: 1}
- {r: 0.647, g: 0.745, b: 0.957, a: 1}
- {r: 0.725, g: 0.863, b: 0.973, a: 1}
- {r: 0.89, g: 0.945, b: 0.996, a: 1}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 12f4303fae7c240478b19b5818736f6f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -645759843, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: GeneralDrawerConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.GeneralDrawerConfig
enableUIToolkitSupport: 1
useOldUnityObjectField: 0
useOldUnityPreviewField: 0
useOldTypeSelector: 0
useNewObjectSelector: 1
showNoneItem: 1
showCategoriesByDefault: 0
preferNamespacesOverAssemblyCategories: 1
useOldPolymorphicField: 0
showBaseType: 1
nonDefaultConstructorPreference: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 28093e48ed374f745853a7d214970341
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 188390376, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: ImportSettingsConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.ImportSettingsConfig
automateBeforeBuild: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 962087e9d661f8e4092e5263723ffbec
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1137305049, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: InspectorConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.InspectorConfig
enableOdinInInspector: 1
defaultEditorBehaviour: 11
processMouseMoveInInspector: 1
drawingConfig:
configs: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7192b50bef6e20945980eaea1a53e40d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -228747253, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: OdinModuleConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.Modules.OdinModuleConfig
configurations:
- ID: Unity.Mathematics
ActivationSettings: 0
ModuleTogglingSettings: 1
ModuleUpdateSettings: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a3637919f59638641a151bfe86d6aa7f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 240468018, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: OdinVisualDesignerConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.OdinInspector.Editor.OdinVisualDesignerConfig
SerializedFavoriteAttributes: []
savePath: Assets/Plugins/Sirenix/Odin Inspector/Visual Designer/Saved

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: efc5ae00c81a33049bb426b0fbe25154
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,24 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 2050440665, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
m_Name: TypeRegistryUserConfig
m_EditorClassIdentifier: Sirenix.OdinInspector.Editor.dll::Sirenix.Config.TypeRegistryUserConfig
shownTypes:
serializedCollection: []
hiddenTypes:
serializedCollection: []
addedIllegalTypes:
serializedCollection: []
typeSettings:
serializedDictionary: []
typePriorities:
serializedDictionary: []

Some files were not shown because too many files have changed in this diff Show More