添加了odin,基本实现了选择设备方案面板
This commit is contained in:
parent
d8168242dd
commit
a17272eb57
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7db84c72b2408b24da5a225550b562ff
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 05b1eef81f23d6648992c93437892982
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: aa3dc305dd00dad49bbc1ff3996b055d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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:
|
Binary file not shown.
|
@ -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:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a73a691127ad93941b89586292291dab
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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:
|
Binary file not shown.
|
@ -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:
|
Binary file not shown.
|
@ -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
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 47a84ebde4ec47fabb620b30cc7a096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a4865f1ab4504ed8a368670db22f096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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:
|
Binary file not shown.
|
@ -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:
|
|
@ -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>
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 74721b9f0af448f5ae2e91102a1a096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f3147f7af4c49739579b966c458096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5c65184932ff4fd48a343e236025096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -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
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4873f2a8bdae42baa0406e8a6136096f
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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>
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1bec01331befdea4d9ed9033eabd68f8
|
||||||
|
timeCreated: 1613046886
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 39584688cfac6ff44bd94124e5bc1ca7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f597f19f656ba56eae4f6a3a7cc528f4
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48e08dc33330d11e9d4a1b246c52e4f6
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ed09910c0094cb27be8f3ca264680da3
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cc355dd4cf1e6173beaeb22c2858cbe1
|
||||||
|
timeCreated: 1488828285
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fe4970195facd664dbd38d1cbf2100c3
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 52c0fd243c6c01e4d9efa03616b655d5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 85e532eecf67ab545b2a5a28f1a22894
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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.
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3fdc67fad3e362e47b5dd365a0bbdd7f
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 90eaa0dc28c1934408dc1c02e13a507f
|
||||||
|
timeCreated: 1628274352
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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:
|
|
@ -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 |
|
@ -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:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d9d0676c3aa541c488f4500961f7225c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9ebb649a8cc23f408a5f06fc523d3b6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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:
|
||||||
|
enableUIToolkitSupport: 1
|
||||||
|
useOldUnityObjectField: 0
|
||||||
|
useOldUnityPreviewField: 0
|
||||||
|
useOldTypeSelector: 0
|
||||||
|
useNewObjectSelector: 1
|
||||||
|
showNoneItem: 1
|
||||||
|
showCategoriesByDefault: 0
|
||||||
|
preferNamespacesOverAssemblyCategories: 1
|
||||||
|
useOldPolymorphicField: 0
|
||||||
|
showBaseType: 1
|
||||||
|
nonDefaultConstructorPreference: 0
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8673c9c5e20a0da4ab064d365abf4ae1
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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:
|
||||||
|
enableOdinInInspector: 1
|
||||||
|
defaultEditorBehaviour: 11
|
||||||
|
processMouseMoveInInspector: 1
|
||||||
|
drawingConfig:
|
||||||
|
configs: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f22a79e1cea18142860119772724531
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,17 @@
|
||||||
|
%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:
|
||||||
|
configurations: []
|
||||||
|
ModuleTogglingSettings: 1
|
||||||
|
ModuleUpdateSettings: 1
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c407d1f6349047f489dcd0ceb6228371
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -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:
|
||||||
|
shownTypes:
|
||||||
|
serializedCollection: []
|
||||||
|
hiddenTypes:
|
||||||
|
serializedCollection: []
|
||||||
|
addedIllegalTypes:
|
||||||
|
serializedCollection: []
|
||||||
|
typeSettings:
|
||||||
|
serializedDictionary: []
|
||||||
|
typePriorities:
|
||||||
|
serializedDictionary: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 66f8a0854511ac748901cda78dbb2e85
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 356a67db9bc6244428bcd2aad1eefbda
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 672f80c7898fe3c4a8b3e740b3ac9bb0
|
guid: d92d0eb8b980c6d44b5f0e64a620355b
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 728df0e3465c1a148b83053a3f31d489
|
||||||
|
timeCreated: 1573836981
|
||||||
|
licenseType: Store
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,6 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5a1693d73a4f6e34d955789129c71e11
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4866e740a22eb1e49b1603b051e4d92c
|
||||||
|
timeCreated: 1573836980
|
||||||
|
licenseType: Store
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a66fb0c686ccec6479409c90791aa87e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,883 @@
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
// <copyright file="MathematicsDrawers.cs" company="Sirenix ApS">
|
||||||
|
// Copyright (c) Sirenix ApS. All rights reserved.
|
||||||
|
// </copyright>
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Sirenix.OdinInspector.Modules.UnityMathematics.Editor
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
using Sirenix.OdinInspector.Editor;
|
||||||
|
using Sirenix.Utilities;
|
||||||
|
using Sirenix.Utilities.Editor;
|
||||||
|
using Unity.Mathematics;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public sealed class MatrixFloat2x2Processor : MatrixProcessor<float2x2> { }
|
||||||
|
public sealed class MatrixFloat3x2Processor : MatrixProcessor<float3x2> { }
|
||||||
|
public sealed class MatrixFloat4x2Processor : MatrixProcessor<float4x2> { }
|
||||||
|
public sealed class MatrixFloat2x3Processor : MatrixProcessor<float2x3> { }
|
||||||
|
public sealed class MatrixFloat3x3Processor : MatrixProcessor<float3x3> { }
|
||||||
|
public sealed class MatrixFloat4x3Processor : MatrixProcessor<float4x3> { }
|
||||||
|
public sealed class MatrixFloat2x4Processor : MatrixProcessor<float2x4> { }
|
||||||
|
public sealed class MatrixFloat3x4Processor : MatrixProcessor<float3x4> { }
|
||||||
|
public sealed class MatrixFloat4x4Processor : MatrixProcessor<float4x4> { }
|
||||||
|
|
||||||
|
public sealed class MatrixDouble2x2Processor : MatrixProcessor<double2x2> { }
|
||||||
|
public sealed class MatrixDouble3x2Processor : MatrixProcessor<double3x2> { }
|
||||||
|
public sealed class MatrixDouble4x2Processor : MatrixProcessor<double4x2> { }
|
||||||
|
public sealed class MatrixDouble2x3Processor : MatrixProcessor<double2x3> { }
|
||||||
|
public sealed class MatrixDouble3x3Processor : MatrixProcessor<double3x3> { }
|
||||||
|
public sealed class MatrixDouble4x3Processor : MatrixProcessor<double4x3> { }
|
||||||
|
public sealed class MatrixDouble2x4Processor : MatrixProcessor<double2x4> { }
|
||||||
|
public sealed class MatrixDouble3x4Processor : MatrixProcessor<double3x4> { }
|
||||||
|
public sealed class MatrixDouble4x4Processor : MatrixProcessor<double4x4> { }
|
||||||
|
|
||||||
|
public sealed class MatrixBool2x2Processor : MatrixProcessor<bool2x2> { }
|
||||||
|
public sealed class MatrixBool3x2Processor : MatrixProcessor<bool3x2> { }
|
||||||
|
public sealed class MatrixBool4x2Processor : MatrixProcessor<bool4x2> { }
|
||||||
|
public sealed class MatrixBool2x3Processor : MatrixProcessor<bool2x3> { }
|
||||||
|
public sealed class MatrixBool3x3Processor : MatrixProcessor<bool3x3> { }
|
||||||
|
public sealed class MatrixBool4x3Processor : MatrixProcessor<bool4x3> { }
|
||||||
|
public sealed class MatrixBool2x4Processor : MatrixProcessor<bool2x4> { }
|
||||||
|
public sealed class MatrixBool3x4Processor : MatrixProcessor<bool3x4> { }
|
||||||
|
public sealed class MatrixBool4x4Processor : MatrixProcessor<bool4x4> { }
|
||||||
|
|
||||||
|
public sealed class MatrixInt2x2Processor : MatrixProcessor<int2x2> { }
|
||||||
|
public sealed class MatrixInt3x2Processor : MatrixProcessor<int3x2> { }
|
||||||
|
public sealed class MatrixInt4x2Processor : MatrixProcessor<int4x2> { }
|
||||||
|
public sealed class MatrixInt2x3Processor : MatrixProcessor<int2x3> { }
|
||||||
|
public sealed class MatrixInt3x3Processor : MatrixProcessor<int3x3> { }
|
||||||
|
public sealed class MatrixInt4x3Processor : MatrixProcessor<int4x3> { }
|
||||||
|
public sealed class MatrixInt2x4Processor : MatrixProcessor<int2x4> { }
|
||||||
|
public sealed class MatrixInt3x4Processor : MatrixProcessor<int3x4> { }
|
||||||
|
public sealed class MatrixInt4x4Processor : MatrixProcessor<int4x4> { }
|
||||||
|
|
||||||
|
public sealed class MatrixUInt2x2Processor : MatrixProcessor<uint2x2> { }
|
||||||
|
public sealed class MatrixUInt3x2Processor : MatrixProcessor<uint3x2> { }
|
||||||
|
public sealed class MatrixUInt4x2Processor : MatrixProcessor<uint4x2> { }
|
||||||
|
public sealed class MatrixUInt2x3Processor : MatrixProcessor<uint2x3> { }
|
||||||
|
public sealed class MatrixUInt3x3Processor : MatrixProcessor<uint3x3> { }
|
||||||
|
public sealed class MatrixUInt4x3Processor : MatrixProcessor<uint4x3> { }
|
||||||
|
public sealed class MatrixUInt2x4Processor : MatrixProcessor<uint2x4> { }
|
||||||
|
public sealed class MatrixUInt3x4Processor : MatrixProcessor<uint3x4> { }
|
||||||
|
public sealed class MatrixUInt4x4Processor : MatrixProcessor<uint4x4> { }
|
||||||
|
|
||||||
|
public sealed class DisableUnityMatrixDrawerAttribute : Attribute { }
|
||||||
|
|
||||||
|
public abstract class MatrixProcessor<T> : OdinAttributeProcessor<T>
|
||||||
|
{
|
||||||
|
public override void ProcessSelfAttributes(InspectorProperty property, List<Attribute> attributes)
|
||||||
|
{
|
||||||
|
attributes.GetOrAddAttribute<InlinePropertyAttribute>();
|
||||||
|
attributes.GetOrAddAttribute<DisableUnityMatrixDrawerAttribute>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ProcessChildMemberAttributes(InspectorProperty parentProperty, MemberInfo member, List<Attribute> attributes)
|
||||||
|
{
|
||||||
|
attributes.Add(new HideLabelAttribute());
|
||||||
|
attributes.Add(new MatrixChildAttribute());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DisableUnityMatrixDrawerAttributeDrawer : OdinAttributeDrawer<DisableUnityMatrixDrawerAttribute>
|
||||||
|
{
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.SkipWhenDrawing = true;
|
||||||
|
var chain = this.Property.GetActiveDrawerChain().BakedDrawerArray;
|
||||||
|
|
||||||
|
for (int i = 0; i < chain.Length; i++)
|
||||||
|
{
|
||||||
|
var type = chain[i].GetType();
|
||||||
|
|
||||||
|
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(UnityPropertyDrawer<,>) && type.GetGenericArguments()[0].Name == "MatrixDrawer")
|
||||||
|
{
|
||||||
|
chain[i].SkipWhenDrawing = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MatrixChildAttribute : Attribute { }
|
||||||
|
|
||||||
|
public class Bool2Drawer : OdinValueDrawer<bool2>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 100;
|
||||||
|
|
||||||
|
if (label != null)
|
||||||
|
{
|
||||||
|
GUILayout.Space(3); // Ugh, better than nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
var options = GUILayoutOptions.Height(EditorGUIUtility.singleLineHeight);
|
||||||
|
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Bool3Drawer : OdinValueDrawer<bool3>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 100;
|
||||||
|
|
||||||
|
if (label != null)
|
||||||
|
{
|
||||||
|
GUILayout.Space(3); // Ugh, better than nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
var options = GUILayoutOptions.Height(EditorGUIUtility.singleLineHeight);
|
||||||
|
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Bool4Drawer : OdinValueDrawer<bool4>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 100;
|
||||||
|
|
||||||
|
if (label != null)
|
||||||
|
{
|
||||||
|
GUILayout.Space(3); // Ugh, better than nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
var options = GUILayoutOptions.Height(EditorGUIUtility.singleLineHeight);
|
||||||
|
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
EditorGUILayout.BeginVertical(options);
|
||||||
|
this.ValueEntry.Property.Children[3].Draw(showLabels ? GUIHelper.TempContent("W") : null);
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Float2Drawer : OdinValueDrawer<float2>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector2(val.x, val.y));
|
||||||
|
val = new float2(vec.x, vec.y);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
float2 value = (float2)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector2(value.x, value.y);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0)"), vec == Vector2.zero, () => SetVector(property, Vector2.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1)"), vec == Vector2.one, () => SetVector(property, Vector2.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0)"), vec == Vector2.right, () => SetVector(property, Vector2.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0)"), vec == Vector2.left, () => SetVector(property, Vector2.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1)"), vec == Vector2.up, () => SetVector(property, Vector2.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1)"), vec == Vector2.down, () => SetVector(property, Vector2.down));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector2 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new float2(value.x, value.y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((float2)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Float3Drawer : OdinValueDrawer<float3>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector3(val.x, val.y, val.z));
|
||||||
|
val = new float3(vec.x, vec.y, vec.z);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
float3 value = (float3)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector3(value.x, value.y, value.z);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0, 0)"), vec == Vector3.zero, () => SetVector(property, Vector3.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1, 1)"), vec == Vector3.one, () => SetVector(property, Vector3.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0, 0)"), vec == Vector3.right, () => SetVector(property, Vector3.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0, 0)"), vec == Vector3.left, () => SetVector(property, Vector3.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1, 0)"), vec == Vector3.up, () => SetVector(property, Vector3.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1, 0)"), vec == Vector3.down, () => SetVector(property, Vector3.down));
|
||||||
|
genericMenu.AddItem(new GUIContent("Forward", "Set the vector property to (0, 0, 1)"), vec == Vector3.forward, () => SetVector(property, Vector3.forward));
|
||||||
|
genericMenu.AddItem(new GUIContent("Back", "Set the vector property to (0, 0, -1)"), vec == Vector3.back, () => SetVector(property, Vector3.back));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector3 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new float3(value.x, value.y, value.z);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((float3)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Float4Drawer : OdinValueDrawer<float4>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector4(val.x, val.y, val.z, val.w));
|
||||||
|
val = new float4(vec.x, vec.y, vec.z, vec.w);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
this.ValueEntry.Property.Children[3].Draw(showLabels ? GUIHelper.TempContent("W") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
float4 value = (float4)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector4(value.x, value.y, value.z, value.w);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0, 0, 0)"), vec == Vector4.zero, () => SetVector(property, Vector3.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1, 1, 1)"), vec == Vector4.one, () => SetVector(property, Vector4.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0, 0, 0)"), (Vector3)vec == Vector3.right, () => SetVector(property, Vector3.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0, 0, 0)"), (Vector3)vec == Vector3.left, () => SetVector(property, Vector3.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1, 0, 0)"), (Vector3)vec == Vector3.up, () => SetVector(property, Vector3.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1, 0, 0)"), (Vector3)vec == Vector3.down, () => SetVector(property, Vector3.down));
|
||||||
|
genericMenu.AddItem(new GUIContent("Forward", "Set the vector property to (0, 0, 1, 0)"), (Vector3)vec == Vector3.forward, () => SetVector(property, Vector3.forward));
|
||||||
|
genericMenu.AddItem(new GUIContent("Back", "Set the vector property to (0, 0, -1, 0)"), (Vector3)vec == Vector3.back, () => SetVector(property, Vector3.back));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector4 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new float4(value.x, value.y, value.z, value.w);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((float4)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class Double2Drawer : OdinValueDrawer<double2>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector2((float)val.x, (float)val.y));
|
||||||
|
val = new double2(vec.x, vec.y);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
double2 value = (double2)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector2((float)value.x, (float)value.y);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0)"), vec == Vector2.zero, () => SetVector(property, Vector2.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1)"), vec == Vector2.one, () => SetVector(property, Vector2.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0)"), vec == Vector2.right, () => SetVector(property, Vector2.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0)"), vec == Vector2.left, () => SetVector(property, Vector2.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1)"), vec == Vector2.up, () => SetVector(property, Vector2.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1)"), vec == Vector2.down, () => SetVector(property, Vector2.down));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector2 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new double2(value.x, value.y);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((double2)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Double3Drawer : OdinValueDrawer<double3>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector3((float)val.x, (float)val.y, (float)val.z));
|
||||||
|
val = new double3(vec.x, vec.y, vec.z);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
double3 value = (double3)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector3((float)value.x, (float)value.y, (float)value.z);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0, 0)"), vec == Vector3.zero, () => SetVector(property, Vector3.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1, 1)"), vec == Vector3.one, () => SetVector(property, Vector3.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0, 0)"), vec == Vector3.right, () => SetVector(property, Vector3.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0, 0)"), vec == Vector3.left, () => SetVector(property, Vector3.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1, 0)"), vec == Vector3.up, () => SetVector(property, Vector3.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1, 0)"), vec == Vector3.down, () => SetVector(property, Vector3.down));
|
||||||
|
genericMenu.AddItem(new GUIContent("Forward", "Set the vector property to (0, 0, 1)"), vec == Vector3.forward, () => SetVector(property, Vector3.forward));
|
||||||
|
genericMenu.AddItem(new GUIContent("Back", "Set the vector property to (0, 0, -1)"), vec == Vector3.back, () => SetVector(property, Vector3.back));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector3 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new double3(value.x, value.y, value.z);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((double3)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Double4Drawer : OdinValueDrawer<double4>, IDefinesGenericMenuItems
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
// Slide rect
|
||||||
|
{
|
||||||
|
var val = this.ValueEntry.SmartValue;
|
||||||
|
EditorGUI.BeginChangeCheck();
|
||||||
|
var vec = SirenixEditorFields.VectorPrefixSlideRect(labelRect, new Vector4((float)val.x, (float)val.y, (float)val.z, (float)val.w));
|
||||||
|
val = new double4(vec.x, vec.y, vec.z, vec.w);
|
||||||
|
if (EditorGUI.EndChangeCheck())
|
||||||
|
{
|
||||||
|
this.ValueEntry.SmartValue = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
this.ValueEntry.Property.Children[3].Draw(showLabels ? GUIHelper.TempContent("W") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Populates the generic menu for the property.
|
||||||
|
/// </summary>
|
||||||
|
public void PopulateGenericMenu(InspectorProperty property, GenericMenu genericMenu)
|
||||||
|
{
|
||||||
|
double4 value = (double4)property.ValueEntry.WeakSmartValue;
|
||||||
|
var vec = new Vector4((float)value.x, (float)value.y, (float)value.z, (float)value.w);
|
||||||
|
|
||||||
|
if (genericMenu.GetItemCount() > 0)
|
||||||
|
{
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
}
|
||||||
|
genericMenu.AddItem(new GUIContent("Normalize"), Mathf.Approximately(vec.magnitude, 1f), () => NormalizeEntries(property));
|
||||||
|
genericMenu.AddItem(new GUIContent("Zero", "Set the vector to (0, 0, 0, 0)"), vec == Vector4.zero, () => SetVector(property, Vector3.zero));
|
||||||
|
genericMenu.AddItem(new GUIContent("One", "Set the vector to (1, 1, 1, 1)"), vec == Vector4.one, () => SetVector(property, Vector4.one));
|
||||||
|
genericMenu.AddSeparator("");
|
||||||
|
genericMenu.AddItem(new GUIContent("Right", "Set the vector to (1, 0, 0, 0)"), (Vector3)vec == Vector3.right, () => SetVector(property, Vector3.right));
|
||||||
|
genericMenu.AddItem(new GUIContent("Left", "Set the vector to (-1, 0, 0, 0)"), (Vector3)vec == Vector3.left, () => SetVector(property, Vector3.left));
|
||||||
|
genericMenu.AddItem(new GUIContent("Up", "Set the vector to (0, 1, 0, 0)"), (Vector3)vec == Vector3.up, () => SetVector(property, Vector3.up));
|
||||||
|
genericMenu.AddItem(new GUIContent("Down", "Set the vector to (0, -1, 0, 0)"), (Vector3)vec == Vector3.down, () => SetVector(property, Vector3.down));
|
||||||
|
genericMenu.AddItem(new GUIContent("Forward", "Set the vector property to (0, 0, 1, 0)"), (Vector3)vec == Vector3.forward, () => SetVector(property, Vector3.forward));
|
||||||
|
genericMenu.AddItem(new GUIContent("Back", "Set the vector property to (0, 0, -1, 0)"), (Vector3)vec == Vector3.back, () => SetVector(property, Vector3.back));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetVector(InspectorProperty property, Vector4 value)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = new double4(value.x, value.y, value.z, value.w);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NormalizeEntries(InspectorProperty property)
|
||||||
|
{
|
||||||
|
property.Tree.DelayActionUntilRepaint(() =>
|
||||||
|
{
|
||||||
|
for (int i = 0; i < property.ValueEntry.ValueCount; i++)
|
||||||
|
{
|
||||||
|
property.ValueEntry.WeakValues[i] = math.normalizesafe((double4)property.ValueEntry.WeakValues[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Int2Drawer : OdinValueDrawer<int2>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Int3Drawer : OdinValueDrawer<int3>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Int4Drawer : OdinValueDrawer<int4>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
this.ValueEntry.Property.Children[3].Draw(showLabels ? GUIHelper.TempContent("W") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UInt2Drawer : OdinValueDrawer<uint2>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UInt3Drawer : OdinValueDrawer<uint3>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UInt4Drawer : OdinValueDrawer<uint4>
|
||||||
|
{
|
||||||
|
private bool isMatrixChild;
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
this.isMatrixChild = this.Property.GetAttribute<MatrixChildAttribute>() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DrawPropertyLayout(GUIContent label)
|
||||||
|
{
|
||||||
|
Rect labelRect;
|
||||||
|
Rect contentRect = SirenixEditorGUI.BeginHorizontalPropertyLayout(label, out labelRect);
|
||||||
|
{
|
||||||
|
var showLabels = !this.isMatrixChild && SirenixEditorFields.ResponsiveVectorComponentFields && contentRect.width >= 185;
|
||||||
|
GUIHelper.PushLabelWidth(SirenixEditorFields.SingleLetterStructLabelWidth);
|
||||||
|
this.ValueEntry.Property.Children[0].Draw(showLabels ? GUIHelper.TempContent("X") : null);
|
||||||
|
this.ValueEntry.Property.Children[1].Draw(showLabels ? GUIHelper.TempContent("Y") : null);
|
||||||
|
this.ValueEntry.Property.Children[2].Draw(showLabels ? GUIHelper.TempContent("Z") : null);
|
||||||
|
this.ValueEntry.Property.Children[3].Draw(showLabels ? GUIHelper.TempContent("W") : null);
|
||||||
|
GUIHelper.PopLabelWidth();
|
||||||
|
|
||||||
|
}
|
||||||
|
SirenixEditorGUI.EndHorizontalPropertyLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 74718b273a32d874a9dc3c58269c36b3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"name": "Sirenix.OdinInspector.Modules.UnityMathematics",
|
||||||
|
"references": [ "Unity.Mathematics", "Sirenix.OdinInspector.Attributes", "Sirenix.OdinInspector.Editor", "Sirenix.Utilities", "Sirenix.Utilities.Editor" ],
|
||||||
|
"includePlatforms": [ "Editor" ],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": true,
|
||||||
|
"autoReferenced": true,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [ "Sirenix.Utilities.dll", "Sirenix.Utilities.Editor.dll", "Sirenix.OdinInspector.Attributes.dll", "Sirenix.OdinInspector.Editor.dll", "Sirenix.Serialization.dll" ],
|
||||||
|
"defineConstraints": []
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ad968d605628d06499b62cdc30f11cf8
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
ManifestVersion: 1
|
||||||
|
ModuleID: Unity.Mathematics
|
||||||
|
ModuleVersion: 1.0.1.0
|
||||||
|
ModuleFiles:
|
||||||
|
MathematicsDrawers.cs
|
||||||
|
MathematicsDrawers.cs.meta
|
||||||
|
Sirenix.OdinInspector.Modules.UnityMathematics.asmdef
|
||||||
|
Sirenix.OdinInspector.Modules.UnityMathematics.asmdef.meta
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d75998bf1510bf547a891fdf294fc1de
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,35 @@
|
||||||
|
------------------------------------ Getting Started ------------------------------------
|
||||||
|
|
||||||
|
Open up the Getting Started guide from "Tools > Odin Inspector > Getting Started."
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------- Helpful Links -------------------------------------
|
||||||
|
|
||||||
|
Tutorials: https://odininspector.com/tutorials
|
||||||
|
API Documentation: https://odininspector.com/documentation
|
||||||
|
Roadmap: https://odininspector.com/roadmap
|
||||||
|
Release Notes: https://odininspector.com/patch-notes
|
||||||
|
Issue Tracker: https://bitbucket.org/sirenix/odin-inspector
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------- Community and Support ---------------------------------
|
||||||
|
|
||||||
|
If you have any issues, suggestions or want advice, then you're more than welcome
|
||||||
|
to join us on Discord, or reach out to us by any other means.
|
||||||
|
|
||||||
|
Support: https://odininspector.com/support
|
||||||
|
Community Addons: https://odininspector.com/community-tools
|
||||||
|
Discord: https://discord.gg/AgDmStu
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------- Thank you! ---------------------------------------
|
||||||
|
|
||||||
|
We really hope you like using Odin. Be sure to leave a review on the Asset Store,
|
||||||
|
that helps us out a lot!
|
||||||
|
|
||||||
|
Leave a review: https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041
|
||||||
|
|
||||||
|
|
||||||
|
Odin Inspector is published and developed by Sirenix.
|
||||||
|
|
||||||
|
Sirenix: Https://sirenix.net
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e957a9e8b4f4bce4b8a34e504a8c39d7
|
||||||
|
timeCreated: 1533815770
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f286f9179f50794f85b3cb5f28bb164
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 316 KiB |
|
@ -157,8 +157,8 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 10, y: -0.2919}
|
m_AnchoredPosition: {x: 29.756592, y: -0.2919}
|
||||||
m_SizeDelta: {x: 326.5593, y: 31.9016}
|
m_SizeDelta: {x: 287.0462, y: 31.9016}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7035437288701173139
|
--- !u!222 &7035437288701173139
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|
|
@ -86,7 +86,7 @@ RectTransform:
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 76, y: 0}
|
m_AnchoredPosition: {x: 76, y: 0}
|
||||||
m_SizeDelta: {x: 450, y: 600}
|
m_SizeDelta: {x: 1024, y: 768}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &4348342816261173991
|
--- !u!222 &4348342816261173991
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
@ -109,7 +109,7 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_Maskable: 1
|
m_Maskable: 1
|
||||||
|
|
|
@ -241,108 +241,6 @@ MonoBehaviour:
|
||||||
m_RequiresDepthTexture: 0
|
m_RequiresDepthTexture: 0
|
||||||
m_RequiresColorTexture: 0
|
m_RequiresColorTexture: 0
|
||||||
m_Version: 2
|
m_Version: 2
|
||||||
--- !u!1 &520322656
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 520322660}
|
|
||||||
- component: {fileID: 520322659}
|
|
||||||
- component: {fileID: 520322658}
|
|
||||||
- component: {fileID: 520322657}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Canvas
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &520322657
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 520322656}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_IgnoreReversedGraphics: 1
|
|
||||||
m_BlockingObjects: 0
|
|
||||||
m_BlockingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
--- !u!114 &520322658
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 520322656}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_UiScaleMode: 1
|
|
||||||
m_ReferencePixelsPerUnit: 100
|
|
||||||
m_ScaleFactor: 1
|
|
||||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
|
||||||
m_ScreenMatchMode: 0
|
|
||||||
m_MatchWidthOrHeight: 0
|
|
||||||
m_PhysicalUnit: 3
|
|
||||||
m_FallbackScreenDPI: 96
|
|
||||||
m_DefaultSpriteDPI: 96
|
|
||||||
m_DynamicPixelsPerUnit: 1
|
|
||||||
m_PresetInfoIsWorld: 0
|
|
||||||
--- !u!223 &520322659
|
|
||||||
Canvas:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 520322656}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_Camera: {fileID: 0}
|
|
||||||
m_PlaneDistance: 100
|
|
||||||
m_PixelPerfect: 0
|
|
||||||
m_ReceivesEvents: 1
|
|
||||||
m_OverrideSorting: 0
|
|
||||||
m_OverridePixelPerfect: 0
|
|
||||||
m_SortingBucketNormalizedSize: 0
|
|
||||||
m_VertexColorAlwaysGammaSpace: 0
|
|
||||||
m_AdditionalShaderChannelsFlag: 25
|
|
||||||
m_SortingLayerID: 0
|
|
||||||
m_SortingOrder: 0
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
--- !u!224 &520322660
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 520322656}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 2105661390}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 4
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
|
||||||
m_Pivot: {x: 0, y: 0}
|
|
||||||
--- !u!1 &744736104
|
--- !u!1 &744736104
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -387,74 +285,6 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d175d4b181be89546abe91f03f9dc60e, type: 3}
|
m_Script: {fileID: 11500000, guid: d175d4b181be89546abe91f03f9dc60e, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &1347389884
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1347389887}
|
|
||||||
- component: {fileID: 1347389886}
|
|
||||||
- component: {fileID: 1347389885}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: EventSystem
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &1347389885
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1347389884}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_SendPointerHoverToParent: 1
|
|
||||||
m_HorizontalAxis: Horizontal
|
|
||||||
m_VerticalAxis: Vertical
|
|
||||||
m_SubmitButton: Submit
|
|
||||||
m_CancelButton: Cancel
|
|
||||||
m_InputActionsPerSecond: 10
|
|
||||||
m_RepeatDelay: 0.5
|
|
||||||
m_ForceModuleActive: 0
|
|
||||||
--- !u!114 &1347389886
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1347389884}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_FirstSelected: {fileID: 0}
|
|
||||||
m_sendNavigationEvents: 1
|
|
||||||
m_DragThreshold: 10
|
|
||||||
--- !u!4 &1347389887
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1347389884}
|
|
||||||
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_RootOrder: 3
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &1406672269
|
--- !u!1 &1406672269
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -570,76 +400,3 @@ MonoBehaviour:
|
||||||
m_ShadowLayerMask: 1
|
m_ShadowLayerMask: 1
|
||||||
m_LightCookieSize: {x: 1, y: 1}
|
m_LightCookieSize: {x: 1, y: 1}
|
||||||
m_LightCookieOffset: {x: 0, y: 0}
|
m_LightCookieOffset: {x: 0, y: 0}
|
||||||
--- !u!1 &2105661389
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 2105661390}
|
|
||||||
- component: {fileID: 2105661392}
|
|
||||||
- component: {fileID: 2105661391}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: RawImage
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 0
|
|
||||||
--- !u!224 &2105661390
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2105661389}
|
|
||||||
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: 520322660}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!114 &2105661391
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2105661389}
|
|
||||||
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.3647059}
|
|
||||||
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: 2800000, guid: 1705b4ae9a8f93641986d20aeca873e4, type: 3}
|
|
||||||
m_UVRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
--- !u!222 &2105661392
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2105661389}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ public class ProcessManager : BaseManager<ProcessManager>
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实操项目id
|
/// 实操项目id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int id;
|
public int id = 10002;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模式
|
/// 模式
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using DG.Tweening;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
public class UI_SelectDevicePanel : BasePanel
|
public class UI_SelectDevicePanel : BasePanel
|
||||||
|
@ -12,25 +16,68 @@ public class UI_SelectDevicePanel : BasePanel
|
||||||
{
|
{
|
||||||
allSchemeName = GameManager.DataMgr.GetAllSchemeName();
|
allSchemeName = GameManager.DataMgr.GetAllSchemeName();
|
||||||
allDeviceTypes = GameManager.DataMgr.GetAllDeviceTypes();
|
allDeviceTypes = GameManager.DataMgr.GetAllDeviceTypes();
|
||||||
CreatItem();
|
CreatTitleAndBtnItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatItem()
|
void CreatTitleAndBtnItem()
|
||||||
{
|
{
|
||||||
|
|
||||||
var onlyDeviceHashSet = new HashSet<int>();
|
var onlyDeviceHashSet = new HashSet<int>();
|
||||||
|
|
||||||
foreach (var scheme in allSchemeName)
|
foreach (var scheme in allSchemeName)
|
||||||
{
|
{
|
||||||
|
if (!onlyDeviceHashSet.Contains(scheme.deviceTypeId)) //没有这个设备类型ID就添加唯一标识
|
||||||
if (!onlyDeviceHashSet.Contains(scheme.deviceTypeId))
|
|
||||||
{
|
{
|
||||||
|
|
||||||
onlyDeviceHashSet.Add(scheme.deviceTypeId);
|
onlyDeviceHashSet.Add(scheme.deviceTypeId);
|
||||||
var titleItem= GameManager.ResourcesMgr.Load<GameObject>(Const.UI_Item + "UI_SelectDevicePanel/titleItem");
|
var titleItem =
|
||||||
|
GameManager.ResourcesMgr.Load<GameObject>(Const.UI_Item + "UI_SelectDevicePanel/titleItem");
|
||||||
titleItem.transform.parent = GetControl<ScrollRect>("DeviceScrollView").content;
|
titleItem.transform.parent = GetControl<ScrollRect>("DeviceScrollView").content;
|
||||||
|
if (allDeviceTypes.TryGetValue(scheme.deviceTypeId, out TB_DeviceType deviceNameItem))
|
||||||
|
{
|
||||||
|
titleItem.GetComponentInChildren<TextMeshProUGUI>().text = deviceNameItem.deviceTypeName;
|
||||||
|
var currentIdList = allSchemeName.FindAll(s => s.deviceTypeId == scheme.deviceTypeId);
|
||||||
|
//遍历每个当前设备类型,并生成按钮
|
||||||
|
currentIdList.ForEach(x =>
|
||||||
|
{
|
||||||
|
var deviceItemBtn =
|
||||||
|
GameManager.ResourcesMgr.Load<GameObject>(Const.UI_Item +
|
||||||
|
"UI_SelectDevicePanel/deviceItemBtn");
|
||||||
|
//按钮的父节点是标题的父节点content
|
||||||
|
deviceItemBtn.transform.parent = titleItem.transform.parent;
|
||||||
|
deviceItemBtn.GetComponentInChildren<TextMeshProUGUI>().text = x.schemeName;
|
||||||
|
var deviceBtnAComponent= deviceItemBtn.GetComponent<Button>();
|
||||||
|
AddEventForDeviceBtn(deviceBtnAComponent,x.deviceMap);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
private void AddEventForDeviceBtn(UIBehaviour deviceBtnAComponent,string mapName)
|
||||||
}
|
{
|
||||||
|
GameManager.UIMgr.AddEventTriggerListener(deviceBtnAComponent,EventTriggerType.PointerEnter,
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
Debug.LogError(deviceBtnAComponent.GetComponentInChildren<TextMeshProUGUI>().text);
|
||||||
|
deviceBtnAComponent.transform.DOScale(1.5f, 0.2f);
|
||||||
|
this.GetControl<Image>("DeviceShowImg").sprite =
|
||||||
|
GameManager.ResourcesMgr.Load<Sprite>(Const.UI_SelectDevicePanel + mapName);
|
||||||
|
this.GetControl<Image>("DeviceShowImg").color = new Color(1, 1, 1, 1);
|
||||||
|
});
|
||||||
|
GameManager.UIMgr.AddEventTriggerListener(deviceBtnAComponent,EventTriggerType.PointerExit,
|
||||||
|
_ =>
|
||||||
|
{
|
||||||
|
deviceBtnAComponent.transform.DOScale(1f, 0.2f);
|
||||||
|
this.GetControl<Image>("DeviceShowImg").color = new Color(1, 1, 1, 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
[Button]
|
||||||
|
public void Test1()
|
||||||
|
{
|
||||||
|
foreach (var VARIABLE in allSchemeName)
|
||||||
|
{
|
||||||
|
Debug.LogError(VARIABLE.deviceMap+VARIABLE.schemeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.LogError(allDeviceTypes.Count);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
public class Const
|
public class Const
|
||||||
{
|
{
|
||||||
#region ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#region
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加载标题
|
/// 加载标题
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -12,6 +12,7 @@ public class Const
|
||||||
public const string LoadBGPath = "Sprites/UI_LoadingBG/";
|
public const string LoadBGPath = "Sprites/UI_LoadingBG/";
|
||||||
|
|
||||||
public const string LoadToolAndMaterialPath = "Sprites/ToolAndMaterial/";
|
public const string LoadToolAndMaterialPath = "Sprites/ToolAndMaterial/";
|
||||||
|
public const string UI_SelectDevicePanel = "Sprites/UI_SelectDevicePanel/";//需要动态加载该方案的所有设备图片
|
||||||
public const string UI_Item = "UI/UI_Item/";
|
public const string UI_Item = "UI/UI_Item/";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Unity.VisualScripting;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
|
@ -13,14 +14,17 @@ public enum E_UI_Layer
|
||||||
/// 最下层
|
/// 最下层
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Bot,
|
Bot,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 中间层
|
/// 中间层
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Mid,
|
Mid,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上层 加载页面
|
/// 上层 加载页面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Top,
|
Top,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 最上层 系统层 警告、错误
|
/// 最上层 系统层 警告、错误
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -77,6 +81,7 @@ public class UIManager : BaseManager<UIManager>
|
||||||
action?.Invoke(panelDic[panelName] as T);
|
action?.Invoke(panelDic[panelName] as T);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//重复调用 同一帧调用多次问题
|
//重复调用 同一帧调用多次问题
|
||||||
ResourcesManager.Instance.LoadAsync<GameObject>("UI/UI_Panel/" + panelName, (panelObj) =>
|
ResourcesManager.Instance.LoadAsync<GameObject>("UI/UI_Panel/" + panelName, (panelObj) =>
|
||||||
{
|
{
|
||||||
|
@ -93,6 +98,7 @@ public class UIManager : BaseManager<UIManager>
|
||||||
uilayer = system;
|
uilayer = system;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelObj.transform.SetParent(uilayer);
|
panelObj.transform.SetParent(uilayer);
|
||||||
panelObj.transform.localPosition = Vector3.zero;
|
panelObj.transform.localPosition = Vector3.zero;
|
||||||
panelObj.transform.localRotation = Quaternion.identity;
|
panelObj.transform.localRotation = Quaternion.identity;
|
||||||
|
@ -137,6 +143,7 @@ public class UIManager : BaseManager<UIManager>
|
||||||
{
|
{
|
||||||
return panelDic[panelName] as T;
|
return panelDic[panelName] as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,13 +175,11 @@ public class UIManager : BaseManager<UIManager>
|
||||||
/// <param name="control">控件对象</param>
|
/// <param name="control">控件对象</param>
|
||||||
/// <param name="type">事件类型</param>
|
/// <param name="type">事件类型</param>
|
||||||
/// <param name="action">委托</param>
|
/// <param name="action">委托</param>
|
||||||
public static void AddEventTriggerListener(UIBehaviour control, EventTriggerType type,UnityAction<BaseEventData> action)
|
public void AddEventTriggerListener(UIBehaviour control, EventTriggerType type,
|
||||||
|
UnityAction<BaseEventData> action)
|
||||||
{
|
{
|
||||||
EventTrigger eventTrigger = control.GetComponent<EventTrigger>();
|
var eventTrigger = control.GetOrAddComponent<EventTrigger>();
|
||||||
if (eventTrigger == null)
|
EventTrigger.Entry entry = new EventTrigger.Entry(){eventID =type };
|
||||||
eventTrigger = control.GetComponent<EventTrigger>();
|
|
||||||
EventTrigger.Entry entry = new EventTrigger.Entry();
|
|
||||||
entry.eventID = type;
|
|
||||||
entry.callback.AddListener(action);
|
entry.callback.AddListener(action);
|
||||||
eventTrigger.triggers.Add(entry);
|
eventTrigger.triggers.Add(entry);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue