destroyed proj
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 477e251f53db31c4daa72d10a331cf5a
|
||||
guid: e08de2af45a4b6047b119b06afdb8784
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
114
Assets/AddressableAssetsData/AddressableAssetSettings.asset
Normal file
114
Assets/AddressableAssetsData/AddressableAssetSettings.asset
Normal file
@@ -0,0 +1,114 @@
|
||||
%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: 11500000, guid: 468a46d0ae32c3544b7d98094e6448a9, type: 3}
|
||||
m_Name: AddressableAssetSettings
|
||||
m_EditorClassIdentifier:
|
||||
m_DefaultGroup: bc748cda1de45d8488107d01987d6cf0
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
m_DisableCatalogUpdateOnStart: 0
|
||||
m_InternalIdNamingMode: 0
|
||||
m_InternalBundleIdMode: 1
|
||||
m_AssetLoadMode: 0
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName:
|
||||
m_ClassName:
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName:
|
||||
m_ClassName:
|
||||
m_IgnoreUnsupportedFilesInBuild: 0
|
||||
m_UniqueBundleIds: 0
|
||||
m_EnableJsonCatalog: 0
|
||||
m_NonRecursiveBuilding: 1
|
||||
m_CCDEnabled: 0
|
||||
m_maxConcurrentWebRequests: 3
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_BundleTimeout: 0
|
||||
m_BundleRetryCount: 0
|
||||
m_BundleRedirectLimit: -1
|
||||
m_SharedBundleSettings: 0
|
||||
m_SharedBundleSettingsCustomGroupIndex: 0
|
||||
m_ContiguousBundles: 1
|
||||
m_StripUnityVersionFromBundleBuild: 0
|
||||
m_DisableVisibleSubAssetRepresentations: 0
|
||||
m_BuiltInBundleNaming: 0
|
||||
mBuiltInBundleCustomNaming:
|
||||
m_MonoScriptBundleNaming: 0
|
||||
m_CheckForContentUpdateRestrictionsOption: 0
|
||||
m_MonoScriptBundleCustomNaming:
|
||||
m_RemoteCatalogBuildPath:
|
||||
m_Id:
|
||||
m_RemoteCatalogLoadPath:
|
||||
m_Id:
|
||||
m_ContentStateBuildPathProfileVariableName:
|
||||
m_CustomContentStateBuildPath:
|
||||
m_ContentStateBuildPath:
|
||||
m_BuildAddressablesWithPlayerBuild: 0
|
||||
m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]'
|
||||
m_GroupAssets:
|
||||
- {fileID: 11400000, guid: 92eaf63d85ebc674eb5cae99dfd97ab8, type: 2}
|
||||
m_BuildSettings:
|
||||
m_LogResourceManagerExceptions: 1
|
||||
m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles
|
||||
m_ProfileSettings:
|
||||
m_Profiles:
|
||||
- m_InheritedParent:
|
||||
m_Id: 70b0881feb138274aa0793424a32f509
|
||||
m_ProfileName: Default
|
||||
m_Values:
|
||||
- m_Id: 018fc3ce3b5c32a4984d1d9fbb67a909
|
||||
m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
|
||||
- m_Id: 0393be1e21ec9d548a7c104f635942d8
|
||||
m_Value: <undefined>
|
||||
- m_Id: 195f5cf6f639dcd408d8493fce9cae15
|
||||
m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
|
||||
- m_Id: 6629386984a3bae46b67354df7aa3dd9
|
||||
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
|
||||
- m_Id: 6a01bc1b152ff9b4bb57c15e07106e5e
|
||||
m_Value: 'ServerData/[BuildTarget]'
|
||||
m_ProfileEntryNames:
|
||||
- m_Id: 018fc3ce3b5c32a4984d1d9fbb67a909
|
||||
m_Name: Local.BuildPath
|
||||
m_InlineUsage: 0
|
||||
- m_Id: 0393be1e21ec9d548a7c104f635942d8
|
||||
m_Name: Remote.LoadPath
|
||||
m_InlineUsage: 0
|
||||
- m_Id: 195f5cf6f639dcd408d8493fce9cae15
|
||||
m_Name: BuildTarget
|
||||
m_InlineUsage: 0
|
||||
- m_Id: 6629386984a3bae46b67354df7aa3dd9
|
||||
m_Name: Local.LoadPath
|
||||
m_InlineUsage: 0
|
||||
- m_Id: 6a01bc1b152ff9b4bb57c15e07106e5e
|
||||
m_Name: Remote.BuildPath
|
||||
m_InlineUsage: 0
|
||||
m_ProfileVersion: 1
|
||||
m_LabelTable:
|
||||
m_LabelNames:
|
||||
- default
|
||||
m_SchemaTemplates: []
|
||||
m_GroupTemplateObjects:
|
||||
- {fileID: 11400000, guid: 8f53aef2659c96f458eb1a172a2751aa, type: 2}
|
||||
m_InitializationObjects: []
|
||||
m_CertificateHandlerType:
|
||||
m_AssemblyName:
|
||||
m_ClassName:
|
||||
m_ActivePlayerDataBuilderIndex: 2
|
||||
m_DataBuilders:
|
||||
- {fileID: 11400000, guid: 8dcb874e2f2b8684196a6756e4847cd3, type: 2}
|
||||
- {fileID: 11400000, guid: 0bad587639952fb4faddc0ced2411c87, type: 2}
|
||||
- {fileID: 11400000, guid: 0569e87acc082334facdccab2f2e6d3c, type: 2}
|
||||
m_ActiveProfileId: 70b0881feb138274aa0793424a32f509
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd0a0373004116246aa996f6fc5a4dbb
|
||||
guid: 6da7fe9a25e1ab64fa6b4ca4b1074e41
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1ad1644f34e55a4d912533e416f7c06
|
||||
guid: f60238e0c5114f34290d04e7822a30ba
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
@@ -0,0 +1,78 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-9135795107451069390
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName:
|
||||
m_ClassName:
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 0
|
||||
m_BuildPath:
|
||||
m_Id:
|
||||
m_LoadPath:
|
||||
m_Id:
|
||||
m_BundleMode: 0
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName:
|
||||
m_ClassName:
|
||||
m_UseDefaultSchemaSettings: 0
|
||||
m_SelectedPathPairIndex: 0
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
--- !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: 11500000, guid: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
|
||||
m_Name: Packed Assets
|
||||
m_EditorClassIdentifier:
|
||||
m_SchemaObjects:
|
||||
- {fileID: -9135795107451069390}
|
||||
- {fileID: 19628808413638517}
|
||||
m_Description: Pack assets into asset bundles.
|
||||
m_Settings: {fileID: 11400000, guid: 6da7fe9a25e1ab64fa6b4ca4b1074e41, type: 2}
|
||||
--- !u!114 &19628808413638517
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 0}
|
||||
m_StaticContent: 0
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8dbc756213844754099dfa00bb8a0e1c
|
||||
guid: 8f53aef2659c96f458eb1a172a2751aa
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
8
Assets/AddressableAssetsData/AssetGroups.meta
Normal file
8
Assets/AddressableAssetsData/AssetGroups.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 058affda123cfef469f642bdd7f0f404
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,33 @@
|
||||
%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: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
|
||||
m_Name: Default Local Group
|
||||
m_EditorClassIdentifier:
|
||||
m_GroupName: Default Local Group
|
||||
m_GUID: bc748cda1de45d8488107d01987d6cf0
|
||||
m_SerializeEntries:
|
||||
- m_GUID: 99c9720ab356a0642a771bea13969a05
|
||||
m_Address: Assets/Dev/dev_gamemode_main.unity
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: c5a555fd0308dc546b2a31af07869f90
|
||||
m_Address: Packages/com.rebootreality.rebootkit/Runtime/Assets/FPPKit/Prefabs/FPPSetup.prefab
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
m_ReadOnly: 0
|
||||
m_Settings: {fileID: 11400000, guid: 6da7fe9a25e1ab64fa6b4ca4b1074e41, type: 2}
|
||||
m_SchemaSet:
|
||||
m_Schemas:
|
||||
- {fileID: 11400000, guid: b667883b96e76a047ba3d63794b28821, type: 2}
|
||||
- {fileID: 11400000, guid: 9f1cf36a5e2492f4283ea2c6192b6777, type: 2}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed71246d15e0b49489a7b30565fe399a
|
||||
guid: 92eaf63d85ebc674eb5cae99dfd97ab8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
8
Assets/AddressableAssetsData/AssetGroups/Schemas.meta
Normal file
8
Assets/AddressableAssetsData/AssetGroups/Schemas.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b091fe28258d90743b56102aceaae802
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%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: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
|
||||
m_Name: Default Local Group_BundledAssetGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 11400000, guid: 92eaf63d85ebc674eb5cae99dfd97ab8, type: 2}
|
||||
m_InternalBundleIdMode: 1
|
||||
m_Compression: 1
|
||||
m_IncludeAddressInCatalog: 1
|
||||
m_IncludeGUIDInCatalog: 1
|
||||
m_IncludeLabelsInCatalog: 1
|
||||
m_InternalIdNamingMode: 0
|
||||
m_CacheClearBehavior: 0
|
||||
m_IncludeInBuild: 1
|
||||
m_BundledAssetProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
|
||||
m_ForceUniqueProvider: 0
|
||||
m_UseAssetBundleCache: 1
|
||||
m_UseAssetBundleCrc: 1
|
||||
m_UseAssetBundleCrcForCachedBundles: 1
|
||||
m_UseUWRForLocalBundles: 0
|
||||
m_Timeout: 0
|
||||
m_ChunkedTransfer: 0
|
||||
m_RedirectLimit: -1
|
||||
m_RetryCount: 0
|
||||
m_BuildPath:
|
||||
m_Id: 018fc3ce3b5c32a4984d1d9fbb67a909
|
||||
m_LoadPath:
|
||||
m_Id: 6629386984a3bae46b67354df7aa3dd9
|
||||
m_BundleMode: 0
|
||||
m_AssetBundleProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
|
||||
m_UseDefaultSchemaSettings: 0
|
||||
m_SelectedPathPairIndex: 0
|
||||
m_BundleNaming: 0
|
||||
m_AssetLoadMode: 0
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e5151b700607a64ab4bd379fe585868
|
||||
guid: b667883b96e76a047ba3d63794b28821
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
|
||||
m_Name: Default Local Group_ContentUpdateGroupSchema
|
||||
m_EditorClassIdentifier:
|
||||
m_Group: {fileID: 11400000, guid: 92eaf63d85ebc674eb5cae99dfd97ab8, type: 2}
|
||||
m_StaticContent: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f1cf36a5e2492f4283ea2c6192b6777
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/AddressableAssetsData/DataBuilders.meta
Normal file
8
Assets/AddressableAssetsData/DataBuilders.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4884ec52c30f9da489a5f6773a8babe5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: 11500000, guid: 88d21199f5d473f4db36845f2318f180, type: 3}
|
||||
m_Name: BuildScriptFastMode
|
||||
m_EditorClassIdentifier:
|
||||
instanceProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
|
||||
sceneProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8dcb874e2f2b8684196a6756e4847cd3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: 11500000, guid: 3e2e0ffa088c91d41a086d0b8cb16bdc, type: 3}
|
||||
m_Name: BuildScriptPackedMode
|
||||
m_EditorClassIdentifier:
|
||||
instanceProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
|
||||
sceneProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0569e87acc082334facdccab2f2e6d3c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: 11500000, guid: ad8c280d42ee0ed41a27db23b43dd2bf, type: 3}
|
||||
m_Name: BuildScriptPackedPlayMode
|
||||
m_EditorClassIdentifier:
|
||||
instanceProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
|
||||
sceneProviderType:
|
||||
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0bad587639952fb4faddc0ced2411c87
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
15
Assets/AddressableAssetsData/DefaultObject.asset
Normal file
15
Assets/AddressableAssetsData/DefaultObject.asset
Normal file
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3a189bb168d8d90478a09ea08c2f3d72, type: 3}
|
||||
m_Name: DefaultObject
|
||||
m_EditorClassIdentifier:
|
||||
m_AddressableAssetSettingsGuid: 6da7fe9a25e1ab64fa6b4ca4b1074e41
|
||||
8
Assets/AddressableAssetsData/DefaultObject.asset.meta
Normal file
8
Assets/AddressableAssetsData/DefaultObject.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8d42b7835d2aed4ab2248118e3f239d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
5
Assets/Code/GameConsts.cs
Normal file
5
Assets/Code/GameConsts.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace Code {
|
||||
public static class GameConsts {
|
||||
public const string AssetMenu = "Posadzka/";
|
||||
}
|
||||
}
|
||||
3
Assets/Code/GameConsts.cs.meta
Normal file
3
Assets/Code/GameConsts.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f207d27fba454fc99f43d0fadbdd6dcc
|
||||
timeCreated: 1741208863
|
||||
30
Assets/Code/GameplayGameMode.cs
Normal file
30
Assets/Code/GameplayGameMode.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System.Threading;
|
||||
using Code;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using RebootKit.Engine;
|
||||
using RebootKit.Engine.Foundation;
|
||||
|
||||
namespace posadzka.code {
|
||||
public class GameplayGameModeController : IController {
|
||||
private GameplayGameModeAsset.Config _config;
|
||||
|
||||
public GameplayGameModeController(GameplayGameModeAsset.Config config) {
|
||||
_config = config;
|
||||
}
|
||||
|
||||
public void Dispose() {
|
||||
}
|
||||
|
||||
public async UniTask OnStart(CancellationToken cancellationToken) {
|
||||
await RR.World().Load(_config.WorldConfig.Config);
|
||||
|
||||
}
|
||||
|
||||
public void OnStop() {
|
||||
}
|
||||
|
||||
public void OnTick() {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
22
Assets/Code/GameplayGameModeAsset.cs
Normal file
22
Assets/Code/GameplayGameModeAsset.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using posadzka.code;
|
||||
using RebootKit.Engine.Services.Game;
|
||||
using RebootKit.Engine.Services.Simulation;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code {
|
||||
[CreateAssetMenu(menuName = GameConsts.AssetMenu + "Gameplay Game Mode")]
|
||||
public class GameplayGameModeAsset : GameModeAsset {
|
||||
[Serializable]
|
||||
public class Config {
|
||||
public WorldConfigAsset WorldConfig;
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private Config _config;
|
||||
|
||||
public override void ConfigureGameMode(GameMode gameMode) {
|
||||
gameMode.AddController(new GameplayGameModeController(_config));
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Code/GameplayGameModeAsset.cs.meta
Normal file
3
Assets/Code/GameplayGameModeAsset.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4cd7e49de6a6445e8c74a7c236483322
|
||||
timeCreated: 1741208836
|
||||
17
Assets/Code/posadzka.asmdef
Normal file
17
Assets/Code/posadzka.asmdef
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "posadzka",
|
||||
"rootNamespace": "posadzka",
|
||||
"references": [
|
||||
"GUID:284059c7949783646b281a1b815580e6",
|
||||
"GUID:f51ebe6a0ceec4240a699833d6309b23"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
7
Assets/Code/posadzka.asmdef.meta
Normal file
7
Assets/Code/posadzka.asmdef.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f08ebe8a61f0c84e811ab1f7e9d1080
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,260 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-8299899638604294112
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3}
|
||||
m_Name: SplitToning
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
shadows:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
highlights:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
balance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &-6260248028241132399
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}
|
||||
m_Name: Bloom
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
skipIterations:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
threshold:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.9
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
scatter:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.7
|
||||
clamp:
|
||||
m_OverrideState: 1
|
||||
m_Value: 65472
|
||||
tint:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||
highQualityFiltering:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
downscale:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
maxIterations:
|
||||
m_OverrideState: 1
|
||||
m_Value: 6
|
||||
dirtTexture:
|
||||
m_OverrideState: 1
|
||||
m_Value: {fileID: 0}
|
||||
dimension: 1
|
||||
dirtIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &-5609251016017277293
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3}
|
||||
m_Name: ProbeVolumesOptions
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
normalBias:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.05
|
||||
viewBias:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.1
|
||||
scaleBiasWithMinProbeDistance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
samplingNoise:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.1
|
||||
animateSamplingNoise:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
leakReductionMode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 2
|
||||
minValidDotProductValue:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.1
|
||||
occlusionOnlyReflectionNormalization:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
intensityMultiplier:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
skyOcclusionIntensityMultiplier:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
worldOffset:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &-3459710295462755850
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3}
|
||||
m_Name: LensDistortion
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
xMultiplier:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
yMultiplier:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
center:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0.5, y: 0.5}
|
||||
scale:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
--- !u!114 &-2673905870377860765
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3}
|
||||
m_Name: WhiteBalance
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
temperature:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
tint:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &-1929290040497888066
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3}
|
||||
m_Name: DepthOfField
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
mode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
gaussianStart:
|
||||
m_OverrideState: 1
|
||||
m_Value: 10
|
||||
gaussianEnd:
|
||||
m_OverrideState: 1
|
||||
m_Value: 30
|
||||
gaussianMaxRadius:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
highQualitySampling:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
focusDistance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 10
|
||||
aperture:
|
||||
m_OverrideState: 1
|
||||
m_Value: 5.6
|
||||
focalLength:
|
||||
m_OverrideState: 1
|
||||
m_Value: 50
|
||||
bladeCount:
|
||||
m_OverrideState: 1
|
||||
m_Value: 5
|
||||
bladeCurvature:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
bladeRotation:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &-1899571858441854302
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3}
|
||||
m_Name: FilmGrain
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
type:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
response:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.8
|
||||
texture:
|
||||
m_OverrideState: 1
|
||||
m_Value: {fileID: 0}
|
||||
--- !u!114 &-1547716678389945873
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3}
|
||||
m_Name: LiftGammaGain
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
lift:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
gamma:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
gain:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -12,4 +267,529 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: DefaultVolumeProfile
|
||||
m_EditorClassIdentifier:
|
||||
components: []
|
||||
components:
|
||||
- {fileID: 6134922300343424433}
|
||||
- {fileID: 3701952890792375117}
|
||||
- {fileID: 7236618996094458840}
|
||||
- {fileID: -1899571858441854302}
|
||||
- {fileID: -1547716678389945873}
|
||||
- {fileID: 7933365599458753573}
|
||||
- {fileID: 5726565210832562111}
|
||||
- {fileID: -1929290040497888066}
|
||||
- {fileID: 6056855497371471870}
|
||||
- {fileID: -2673905870377860765}
|
||||
- {fileID: -6260248028241132399}
|
||||
- {fileID: -3459710295462755850}
|
||||
- {fileID: 7621875663918567143}
|
||||
- {fileID: 7142826232866814168}
|
||||
- {fileID: -8299899638604294112}
|
||||
- {fileID: 4799091489421839365}
|
||||
- {fileID: 464747032197062586}
|
||||
- {fileID: 7800253976762326728}
|
||||
- {fileID: -5609251016017277293}
|
||||
--- !u!114 &464747032197062586
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3}
|
||||
m_Name: PaniniProjection
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
distance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
cropToFit:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
--- !u!114 &3701952890792375117
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3}
|
||||
m_Name: ColorCurves
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
master:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 2
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 1
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
red:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 2
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 1
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
green:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 2
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 1
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
blue:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 2
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 1
|
||||
inSlope: 1
|
||||
outSlope: 1
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
hueVsHue:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 0
|
||||
m_Loop: 1
|
||||
m_ZeroValue: 0.5
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
hueVsSat:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 0
|
||||
m_Loop: 1
|
||||
m_ZeroValue: 0.5
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
satVsSat:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 0
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0.5
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
lumVsSat:
|
||||
m_OverrideState: 1
|
||||
m_Value:
|
||||
<length>k__BackingField: 0
|
||||
m_Loop: 0
|
||||
m_ZeroValue: 0.5
|
||||
m_Range: 1
|
||||
m_Curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
--- !u!114 &4799091489421839365
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3}
|
||||
m_Name: ColorLookup
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
texture:
|
||||
m_OverrideState: 1
|
||||
m_Value: {fileID: 0}
|
||||
dimension: 1
|
||||
contribution:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &5726565210832562111
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3}
|
||||
m_Name: ChromaticAberration
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &6056855497371471870
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3}
|
||||
m_Name: ScreenSpaceLensFlare
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
tintColor:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||
bloomMip:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
firstFlareIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
secondaryFlareIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
warpedFlareIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
warpedFlareScale:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1}
|
||||
samples:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
sampleDimmer:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.5
|
||||
vignetteEffect:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
startingPosition:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1.25
|
||||
scale:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1.5
|
||||
streaksIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
streaksLength:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.5
|
||||
streaksOrientation:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
streaksThreshold:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.25
|
||||
resolution:
|
||||
m_OverrideState: 1
|
||||
m_Value: 4
|
||||
chromaticAbberationIntensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.5
|
||||
--- !u!114 &6134922300343424433
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3}
|
||||
m_Name: ChannelMixer
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
redOutRedIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 100
|
||||
redOutGreenIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
redOutBlueIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
greenOutRedIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
greenOutGreenIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 100
|
||||
greenOutBlueIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
blueOutRedIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
blueOutGreenIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
blueOutBlueIn:
|
||||
m_OverrideState: 1
|
||||
m_Value: 100
|
||||
--- !u!114 &7142826232866814168
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}
|
||||
m_Name: Tonemapping
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
mode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
neutralHDRRangeReductionMode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 2
|
||||
acesPreset:
|
||||
m_OverrideState: 1
|
||||
m_Value: 3
|
||||
hueShiftAmount:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
detectPaperWhite:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
paperWhite:
|
||||
m_OverrideState: 1
|
||||
m_Value: 300
|
||||
detectBrightnessLimits:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
minNits:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.005
|
||||
maxNits:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1000
|
||||
--- !u!114 &7236618996094458840
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}
|
||||
m_Name: Vignette
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
color:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0, g: 0, b: 0, a: 1}
|
||||
center:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0.5, y: 0.5}
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
smoothness:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.2
|
||||
rounded:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &7621875663918567143
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3}
|
||||
m_Name: ColorAdjustments
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
postExposure:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
contrast:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
colorFilter:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||
hueShift:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
saturation:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
--- !u!114 &7800253976762326728
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3}
|
||||
m_Name: ShadowsMidtonesHighlights
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
shadows:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
midtones:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
highlights:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 1, y: 1, z: 1, w: 0}
|
||||
shadowsStart:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
shadowsEnd:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.3
|
||||
highlightsStart:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.55
|
||||
highlightsEnd:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
--- !u!114 &7933365599458753573
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
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: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3}
|
||||
m_Name: MotionBlur
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
mode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
quality:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
clamp:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.05
|
||||
|
||||
8
Assets/Dev.meta
Normal file
8
Assets/Dev.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e39b320578909fe48b0c48f5f3b0a044
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@@ -42,8 +42,8 @@ RenderSettings:
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@@ -66,9 +66,6 @@ LightmapSettings:
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
@@ -179,6 +176,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -227,90 +227,6 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &9010203
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9010207}
|
||||
- component: {fileID: 9010206}
|
||||
- component: {fileID: 9010205}
|
||||
m_Layer: 5
|
||||
m_Name: CanvasCrosshair
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &9010205
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9010203}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!223 &9010206
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9010203}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 330585545}
|
||||
m_PlaneDistance: 0.1
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 1
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &9010207
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9010203}
|
||||
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: 503175864}
|
||||
m_Father: {fileID: 330585546}
|
||||
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!1001 &9266861
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -437,6 +353,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -644,179 +563,6 @@ MeshCollider:
|
||||
m_Convex: 1
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 4731840015933613875, guid: 5cefbb3c9ca215b448e9af676cb1aa4f, type: 3}
|
||||
--- !u!1 &330585543
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 330585546}
|
||||
- component: {fileID: 330585545}
|
||||
- component: {fileID: 330585544}
|
||||
- component: {fileID: 330585547}
|
||||
- component: {fileID: 330585548}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &330585544
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 330585543}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &330585545
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 330585543}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 80
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &330585546
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 330585543}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1.75, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 9010207}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &330585547
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 330585543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_RenderShadows: 1
|
||||
m_RequiresDepthTextureOption: 2
|
||||
m_RequiresOpaqueTextureOption: 2
|
||||
m_CameraType: 0
|
||||
m_Cameras: []
|
||||
m_RendererIndex: -1
|
||||
m_VolumeLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
m_VolumeTrigger: {fileID: 0}
|
||||
m_VolumeFrameworkUpdateModeOption: 2
|
||||
m_RenderPostProcessing: 1
|
||||
m_Antialiasing: 0
|
||||
m_AntialiasingQuality: 2
|
||||
m_StopNaN: 0
|
||||
m_Dithering: 0
|
||||
m_ClearDepth: 1
|
||||
m_AllowXRRendering: 1
|
||||
m_AllowHDROutput: 1
|
||||
m_UseScreenCoordOverride: 0
|
||||
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_RequiresDepthTexture: 0
|
||||
m_RequiresColorTexture: 0
|
||||
m_Version: 2
|
||||
m_TaaSettings:
|
||||
m_Quality: 3
|
||||
m_FrameInfluence: 0.1
|
||||
m_JitterScale: 1
|
||||
m_MipBias: 0
|
||||
m_VarianceClampScale: 0.9
|
||||
m_ContrastAdaptiveSharpening: 0
|
||||
--- !u!114 &330585548
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 330585543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ShowDebugText: 0
|
||||
m_ShowCameraFrustum: 1
|
||||
m_IgnoreTimeScale: 0
|
||||
m_WorldUpOverride: {fileID: 0}
|
||||
m_UpdateMethod: 2
|
||||
m_BlendUpdateMethod: 1
|
||||
m_DefaultBlend:
|
||||
m_Style: 0
|
||||
m_Time: 2
|
||||
m_CustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
m_CustomBlends: {fileID: 0}
|
||||
m_CameraCutEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_CameraActivatedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &340121189
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -867,6 +613,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -957,6 +706,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -1218,81 +970,6 @@ Rigidbody:
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 1
|
||||
--- !u!1 &503175863
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 503175864}
|
||||
- component: {fileID: 503175866}
|
||||
- component: {fileID: 503175865}
|
||||
m_Layer: 5
|
||||
m_Name: Crosshair
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &503175864
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 503175863}
|
||||
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: 9010207}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 39, y: 39}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &503175865
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 503175863}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.9716981, g: 0.91266793, b: 0.8479441, a: 0.19215687}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -2006807628, guid: f68ccc14f83f6a74586729066501e5ee, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &503175866
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 503175863}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &503687363
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1343,6 +1020,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -1557,6 +1237,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -1707,9 +1390,8 @@ Light:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 765481450}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
serializedVersion: 11
|
||||
m_Type: 1
|
||||
m_Shape: 0
|
||||
m_Color: {r: 0.0072089583, g: 0.26792687, b: 0.509434, a: 1}
|
||||
m_Intensity: 0.1
|
||||
m_Range: 10
|
||||
@@ -1759,8 +1441,12 @@ Light:
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &765481453
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1826,6 +1512,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -1909,6 +1598,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2041,6 +1733,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2338,6 +2033,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2421,6 +2119,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2504,6 +2205,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2587,6 +2291,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -2710,8 +2417,7 @@ LightingSettings:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
serializedVersion: 6
|
||||
m_GIWorkflowMode: 1
|
||||
serializedVersion: 9
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
@@ -2721,6 +2427,8 @@ LightingSettings:
|
||||
m_UsingShadowmask: 1
|
||||
m_BakeBackend: 1
|
||||
m_LightmapMaxSize: 1024
|
||||
m_LightmapSizeFixed: 0
|
||||
m_UseMipmapLimits: 1
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
@@ -2734,13 +2442,11 @@ LightingSettings:
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_EnableWorkerProcessBaking: 1
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
@@ -2764,99 +2470,7 @@ LightingSettings:
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
m_NumRaysToShootPerTexel: -1
|
||||
m_RespectSceneVisibilityWhenBakingGI: 0
|
||||
--- !u!1 &1676266384
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1676266387}
|
||||
- component: {fileID: 1676266386}
|
||||
- component: {fileID: 1676266388}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1676266386
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1676266384}
|
||||
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 &1676266387
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1676266384}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1676266388
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1676266384}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_SendPointerHoverToParent: 1
|
||||
m_MoveRepeatDelay: 0.5
|
||||
m_MoveRepeatRate: 0.1
|
||||
m_XRTrackingOrigin: {fileID: 0}
|
||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_DeselectOnBackgroundClick: 1
|
||||
m_PointerBehavior: 0
|
||||
m_CursorLockBehavior: 0
|
||||
m_ScrollDeltaPerTick: 6
|
||||
--- !u!1 &1695603700
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3155,9 +2769,8 @@ Light:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1901684836}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
serializedVersion: 11
|
||||
m_Type: 2
|
||||
m_Shape: 0
|
||||
m_Color: {r: 1, g: 0.9833402, b: 0.1745283, a: 1}
|
||||
m_Intensity: 10.25
|
||||
m_Range: 10
|
||||
@@ -3207,8 +2820,12 @@ Light:
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!1 &1954528286
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3258,9 +2875,8 @@ Light:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1954528286}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
serializedVersion: 11
|
||||
m_Type: 0
|
||||
m_Shape: 0
|
||||
m_Color: {r: 0.9622642, g: 0.95139134, b: 0.8033998, a: 1}
|
||||
m_Intensity: 34.08
|
||||
m_Range: 10
|
||||
@@ -3310,8 +2926,12 @@ Light:
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &1954528289
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3384,6 +3004,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@@ -3436,7 +3059,6 @@ Transform:
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 330585546}
|
||||
- {fileID: 832575519}
|
||||
- {fileID: 341739537}
|
||||
- {fileID: 2081706525}
|
||||
@@ -3450,7 +3072,6 @@ SceneRoots:
|
||||
- {fileID: 1060675711}
|
||||
- {fileID: 140873045}
|
||||
- {fileID: 512784095}
|
||||
- {fileID: 1676266387}
|
||||
- {fileID: 8186777}
|
||||
- {fileID: 423578102}
|
||||
- {fileID: 1099951389}
|
||||
8
Assets/Plugins.meta
Normal file
8
Assets/Plugins.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e119bbe05ada6643a93c09e9b57c5ca
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Plugins/Borodar.meta
Normal file
8
Assets/Plugins/Borodar.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd056298735624f468ee28a35bb7faac
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Plugins/Borodar/RainbowHierarchy.meta
Normal file
8
Assets/Plugins/Borodar/RainbowHierarchy.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8828e73deeb9a1245bc9dcc11bffba30
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Plugins/Borodar/RainbowHierarchy/Demo.meta
Normal file
8
Assets/Plugins/Borodar/RainbowHierarchy/Demo.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6eeab58dea03d6649b73b74861f55312
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1447
Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoColors.unity
Normal file
1447
Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoColors.unity
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31f20cb97742f2f4d948452249a89d6d
|
||||
timeCreated: 1502706485
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoColors.unity
|
||||
uploadId: 716077
|
||||
1447
Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoComponents.unity
Normal file
1447
Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoComponents.unity
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa2219c016490de4ea3249875a0fdc97
|
||||
timeCreated: 1502706485
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Demo/DemoComponents.unity
|
||||
uploadId: 716077
|
||||
6
Assets/Plugins/Borodar/RainbowHierarchy/NOTICES.txt
Normal file
6
Assets/Plugins/Borodar/RainbowHierarchy/NOTICES.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
This software includes third-party software subject to the associated copyrights, as follows:
|
||||
|
||||
Name: Unity-Reorderable-List
|
||||
Repo: https://github.com/cfoulston/Unity-Reorderable-List
|
||||
License: MIT (https://github.com/cfoulston/Unity-Reorderable-List/blob/master/LICENSE)
|
||||
Copyright (c) 2017 Chris Foulston
|
||||
14
Assets/Plugins/Borodar/RainbowHierarchy/NOTICES.txt.meta
Normal file
14
Assets/Plugins/Borodar/RainbowHierarchy/NOTICES.txt.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 080d95922e5bb36408c013f72c278870
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/NOTICES.txt
|
||||
uploadId: 716077
|
||||
BIN
Assets/Plugins/Borodar/RainbowHierarchy/QuickStart.pdf
Normal file
BIN
Assets/Plugins/Borodar/RainbowHierarchy/QuickStart.pdf
Normal file
Binary file not shown.
14
Assets/Plugins/Borodar/RainbowHierarchy/QuickStart.pdf.meta
Normal file
14
Assets/Plugins/Borodar/RainbowHierarchy/QuickStart.pdf.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 338f04d1760f4ca49a47e14bb0bf4e9e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/QuickStart.pdf
|
||||
uploadId: 716077
|
||||
8
Assets/Plugins/Borodar/RainbowHierarchy/Scripts.meta
Normal file
8
Assets/Plugins/Borodar/RainbowHierarchy/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d28b25f9acea2446a92a376b467f673
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3a4659fa6059d5c41a7154e883f8a9c7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0e52a2f833afe545b555cb1edb01dcd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[SuppressMessage("ReSharper", "ConvertIfStatementToNullCoalescingExpression")]
|
||||
public static class ColorHelper
|
||||
{
|
||||
public static readonly Color POPUP_BORDER_CLR_FREE = new Color(0.51f, 0.51f, 0.51f);
|
||||
public static readonly Color POPUP_BORDER_CLR_PRO = new Color(0.13f, 0.13f, 0.13f);
|
||||
|
||||
public static readonly Color POPUP_BACKGROUND_CLR_FREE = new Color(0.83f, 0.83f, 0.83f);
|
||||
public static readonly Color POPUP_BACKGROUND_CLR_PRO = new Color(0.18f, 0.18f, 0.18f);
|
||||
|
||||
public static readonly Color SEPARATOR_CLR_1_FREE = new Color(0.65f, 0.65f, 0.65f, 1f);
|
||||
public static readonly Color SEPARATOR_CLR_2_FREE = new Color(0.9f, 0.9f, 0.9f, 1f);
|
||||
public static readonly Color SEPARATOR_CLR_1_PRO = new Color(0.13f, 0.13f, 0.13f, 1f);
|
||||
public static readonly Color SEPARATOR_CLR_2_PRO = new Color(0.22f, 0.22f, 0.22f, 1f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f5afe207c4e956942a1f9bef022c3a98
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Helpers/ColorHelper.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,227 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[SuppressMessage("ReSharper", "ConvertIfStatementToNullCoalescingExpression")]
|
||||
public static class HierarchyEditorUtility
|
||||
{
|
||||
private static Texture2D _editIcon;
|
||||
private static Texture2D _settingsIcon;
|
||||
private static Texture2D _filterIcon;
|
||||
private static Texture2D _deleteIcon;
|
||||
|
||||
private static Texture2D _foldoutFirstIcon;
|
||||
private static Texture2D _foldoutMiddleIcon;
|
||||
private static Texture2D _foldoutLastIcon;
|
||||
private static Texture2D _foldoutLevelsIcon;
|
||||
|
||||
private static string _projectName;
|
||||
private static string _projectPath;
|
||||
private static string _tempDir;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Project
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
[SuppressMessage("ReSharper", "InvertIf")]
|
||||
public static string ProjectName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_projectName == null)
|
||||
{
|
||||
var path = Application.dataPath.Split('/');
|
||||
_projectName = path[path.Length - 2];
|
||||
}
|
||||
|
||||
return _projectName;
|
||||
}
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "InvertIf")]
|
||||
public static string ProjectPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_projectPath == null)
|
||||
{
|
||||
_projectPath = Path.GetDirectoryName(Application.dataPath);
|
||||
}
|
||||
|
||||
return _projectPath;
|
||||
}
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "InvertIf")]
|
||||
public static string TempDir
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_tempDir == null)
|
||||
{
|
||||
_tempDir = $"{ProjectPath}/Temp";
|
||||
}
|
||||
|
||||
return _tempDir;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Windows
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static IEnumerable<EditorWindow> GetAllWindowsByType(string type)
|
||||
{
|
||||
var objectList = Resources.FindObjectsOfTypeAll(typeof(EditorWindow));
|
||||
var windows = from obj in objectList where obj.GetType().ToString() == type select (EditorWindow) obj;
|
||||
return windows;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Scene
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static void UpdateSceneConfigVisibility(bool isVisible)
|
||||
{
|
||||
var rulesetInstances = HierarchyRulesetV2.Instances;
|
||||
if (rulesetInstances == null || rulesetInstances.Count < 1) return;
|
||||
|
||||
foreach (var ruleset in rulesetInstances)
|
||||
{
|
||||
if (ruleset == null) return;
|
||||
ruleset.transform.hideFlags = isVisible
|
||||
? HideFlags.None
|
||||
: HideFlags.HideInHierarchy;
|
||||
}
|
||||
|
||||
EditorApplication.DirtyHierarchyWindowSorting();
|
||||
}
|
||||
|
||||
public static string GetTransformPath(Transform transform)
|
||||
{
|
||||
var path = transform.name;
|
||||
while (transform.parent != null)
|
||||
{
|
||||
transform = transform.parent;
|
||||
path = $"{transform.name}/{path}";
|
||||
}
|
||||
return $"/{path}";
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// GUI
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static bool SearchField(ref string query, ref Enum filter, Enum defaultFilter, params GUILayoutOption[] options)
|
||||
{
|
||||
var queryBefore = query;
|
||||
var filterBefore = filter;
|
||||
var changed = false;
|
||||
|
||||
GUILayout.BeginHorizontal();
|
||||
|
||||
var queryRect = GUILayoutUtility.GetRect(GUIContent.none, "ToolbarSearchTextFieldPopup", options);
|
||||
queryRect.x += 2f;
|
||||
queryRect.width -= 13f;
|
||||
|
||||
var filterRect = queryRect;
|
||||
filterRect.width = 20f;
|
||||
|
||||
filter = EditorGUI.EnumPopup(filterRect, filter, "label");
|
||||
if (!Equals(filter, filterBefore)) changed = true;
|
||||
|
||||
query = EditorGUI.TextField(queryRect, GUIContent.none, query, "ToolbarSearchTextField");
|
||||
if (query != null && !query.Equals(queryBefore)) changed = true;
|
||||
|
||||
var cancelRect = queryRect;
|
||||
cancelRect.x += queryRect.width;
|
||||
cancelRect.width = 12f;
|
||||
if (GUI.Button(cancelRect, GUIContent.none, "ToolbarSearchCancelButton"))
|
||||
{
|
||||
query = string.Empty;
|
||||
filter = defaultFilter;
|
||||
changed = true;
|
||||
// workaround for bug with selected text
|
||||
GUIUtility.keyboardControl = 0;
|
||||
}
|
||||
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Icons
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static Texture2D GetEditIcon()
|
||||
{
|
||||
return GetTexture(ref _editIcon, HierarchyEditorTexture.IcnEdit);
|
||||
}
|
||||
|
||||
public static Texture2D GetSettingsButtonIcon()
|
||||
{
|
||||
return GetTexture(ref _settingsIcon, HierarchyEditorTexture.IcnSettings);
|
||||
}
|
||||
|
||||
public static Texture2D GetFilterButtonIcon()
|
||||
{
|
||||
return GetTexture(ref _filterIcon, HierarchyEditorTexture.IcnFilter);
|
||||
}
|
||||
|
||||
public static Texture2D GetDeleteButtonIcon()
|
||||
{
|
||||
return GetTexture(ref _deleteIcon, HierarchyEditorTexture.IcnDelete);
|
||||
}
|
||||
|
||||
public static Texture2D GetFoldoutIcon(SiblingIndex index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case SiblingIndex.First:
|
||||
return GetTexture(ref _foldoutFirstIcon, HierarchyEditorTexture.IcnFoldoutFirst);
|
||||
case SiblingIndex.Middle:
|
||||
return GetTexture(ref _foldoutMiddleIcon, HierarchyEditorTexture.IcnFoldoutMiddle);
|
||||
case SiblingIndex.Last:
|
||||
return GetTexture(ref _foldoutLastIcon, HierarchyEditorTexture.IcnFoldoutLast);
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException("index", index, null);
|
||||
}
|
||||
}
|
||||
|
||||
public static Texture2D GetFoldoutLevelsIcon()
|
||||
{
|
||||
return GetTexture(ref _foldoutLevelsIcon, HierarchyEditorTexture.IcnFoldoutLevels);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static Texture2D GetTexture(ref Texture2D texture, HierarchyEditorTexture type)
|
||||
{
|
||||
if (texture == null)
|
||||
texture = HierarchyEditorTexturesStorage.GetTexture(type);
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Nested
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public enum SiblingIndex
|
||||
{
|
||||
First,
|
||||
Middle,
|
||||
Last
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 706f956b3ade11845b3ebc2c47f0fe00
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Helpers/HierarchyEditorUtility.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,124 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEditor.IMGUI.Controls;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[InitializeOnLoad]
|
||||
public static class HierarchyWindowAdapter
|
||||
{
|
||||
private const string EDITOR_WINDOW_TYPE = "UnityEditor.SceneHierarchyWindow";
|
||||
private const double EDITOR_WINDOWS_CACHE_TTL = 2;
|
||||
|
||||
private const BindingFlags INSTANCE_PRIVATE = BindingFlags.Instance | BindingFlags.NonPublic;
|
||||
private const BindingFlags INSTANCE_PUBLIC = BindingFlags.Instance | BindingFlags.Public;
|
||||
|
||||
private static readonly FieldInfo SCENE_HIERARCHY_FIELD;
|
||||
private static readonly FieldInfo TREE_VIEW_FIELD;
|
||||
private static readonly PropertyInfo TREE_VIEW_DATA_PROPERTY;
|
||||
private static readonly MethodInfo TREE_VIEW_ITEMS_METHOD;
|
||||
private static readonly PropertyInfo TREE_VIEW_OBJECT_PROPERTY;
|
||||
|
||||
// Windows cache
|
||||
private static double _nextWindowsUpdate;
|
||||
private static EditorWindow[] _windowsCache;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctor
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
static HierarchyWindowAdapter()
|
||||
{
|
||||
// Reflection
|
||||
|
||||
var assembly = Assembly.GetAssembly(typeof(EditorWindow));
|
||||
|
||||
var hierarchyWindowType = assembly.GetType("UnityEditor.SceneHierarchyWindow");
|
||||
SCENE_HIERARCHY_FIELD = hierarchyWindowType.GetField("m_SceneHierarchy", INSTANCE_PRIVATE);
|
||||
|
||||
var sceneHierarchyType = assembly.GetType("UnityEditor.SceneHierarchy");
|
||||
TREE_VIEW_FIELD = sceneHierarchyType.GetField("m_TreeView", INSTANCE_PRIVATE);
|
||||
|
||||
var treeViewType = assembly.GetType("UnityEditor.IMGUI.Controls.TreeViewController");
|
||||
TREE_VIEW_DATA_PROPERTY = treeViewType.GetProperty("data", INSTANCE_PUBLIC);
|
||||
|
||||
var treeViewDataType = assembly.GetType("UnityEditor.GameObjectTreeViewDataSource");
|
||||
TREE_VIEW_ITEMS_METHOD = treeViewDataType.GetMethod("GetRows", INSTANCE_PUBLIC);
|
||||
|
||||
var treeViewItem = assembly.GetType("UnityEditor.GameObjectTreeViewItem");
|
||||
TREE_VIEW_OBJECT_PROPERTY = treeViewItem.GetProperty("objectPPTR", INSTANCE_PUBLIC);
|
||||
|
||||
// Callbacks
|
||||
|
||||
HierarchyRulesetV2.OnRulesetChangeCallback += ApplyDefaultIconsToAll;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static EditorWindow GetFirstHierarchyWindow()
|
||||
{
|
||||
return GetAllHierarchyWindows().FirstOrDefault();
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
[SuppressMessage("ReSharper", "InvertIf")]
|
||||
public static IEnumerable<EditorWindow> GetAllHierarchyWindows(bool forceUpdate = false)
|
||||
{
|
||||
if (forceUpdate || _nextWindowsUpdate < EditorApplication.timeSinceStartup)
|
||||
{
|
||||
_nextWindowsUpdate = EditorApplication.timeSinceStartup + EDITOR_WINDOWS_CACHE_TTL;
|
||||
_windowsCache = HierarchyEditorUtility.GetAllWindowsByType(EDITOR_WINDOW_TYPE).ToArray();
|
||||
}
|
||||
|
||||
return _windowsCache;
|
||||
}
|
||||
|
||||
public static void ApplyIconByInstanceId(int instanceId, Texture2D icon)
|
||||
{
|
||||
var hierarchyWindows = GetAllHierarchyWindows();
|
||||
|
||||
foreach (var window in hierarchyWindows)
|
||||
{
|
||||
var treeViewItems = GetTreeViewItems(window);
|
||||
var treeViewItem = treeViewItems.FirstOrDefault(item => item.id == instanceId);
|
||||
if (treeViewItem != null) treeViewItem.icon = icon;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static IEnumerable<TreeViewItem> GetTreeViewItems(EditorWindow window)
|
||||
{
|
||||
var sceneHierarchy = SCENE_HIERARCHY_FIELD.GetValue(window);
|
||||
var treeView = TREE_VIEW_FIELD.GetValue(sceneHierarchy);
|
||||
var treeViewData = TREE_VIEW_DATA_PROPERTY.GetValue(treeView, null);
|
||||
var treeViewItems = (IEnumerable<TreeViewItem>) TREE_VIEW_ITEMS_METHOD.Invoke(treeViewData, null);
|
||||
|
||||
return treeViewItems;
|
||||
}
|
||||
|
||||
private static void ApplyDefaultIconsToAll()
|
||||
{
|
||||
var hierarchyWindows = GetAllHierarchyWindows(true);
|
||||
foreach (var window in hierarchyWindows)
|
||||
{
|
||||
var treeViewItems = GetTreeViewItems(window);
|
||||
foreach (var item in treeViewItems)
|
||||
{
|
||||
var gameObject = TREE_VIEW_OBJECT_PROPERTY.GetValue(item, null);
|
||||
if (gameObject == null) continue;
|
||||
item.icon = PrefabUtility.GetIconForGameObject((GameObject) gameObject);
|
||||
}
|
||||
}
|
||||
EditorApplication.RepaintHierarchyWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f23b31e6bba538a4cae0907091949e50
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Helpers/HierarchyWindowAdapter.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,24 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
internal static class RHLogger
|
||||
{
|
||||
private const string TAG = "<b>[RH]</b>";
|
||||
|
||||
public static void Log(string message)
|
||||
{
|
||||
Debug.Log($"{TAG} {message}");
|
||||
}
|
||||
|
||||
public static void LogWarning(string message)
|
||||
{
|
||||
Debug.LogWarning($"{TAG} {message}");
|
||||
}
|
||||
|
||||
public static void LogError(string message)
|
||||
{
|
||||
Debug.LogError($"{TAG} {message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f02ac93f4c0323408795cc555a9241b
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Helpers/RHLogger.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b51128ba8e08d8498b38a08a4377290
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,54 @@
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using static Borodar.RainbowHierarchy.HierarchyRulesetV2;
|
||||
using static Borodar.RainbowHierarchy.RHLogger;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[InitializeOnLoad]
|
||||
public static class EditorProxyInitializer
|
||||
{
|
||||
static EditorProxyInitializer()
|
||||
{
|
||||
HierarchyEditorProxy.UpdateOldRuleset = (gameObject) =>
|
||||
{
|
||||
var dialogResult = EditorUtility.DisplayDialog
|
||||
(
|
||||
"Rainbow Hierarchy Update",
|
||||
"This scene contains a ruleset from the older Rainbow Hierarchy version. Do you want to update it now?",
|
||||
"Yes",
|
||||
"No"
|
||||
);
|
||||
|
||||
if (!dialogResult) return;
|
||||
|
||||
var scene = gameObject.scene;
|
||||
var sceneName = scene.name;
|
||||
var filePath = $"{HierarchyEditorUtility.TempDir}/{sceneName}.{EXTENSION}";
|
||||
|
||||
// Export old ruleset and override version
|
||||
if (gameObject.TryGetComponent<HierarchyRuleset>(out var rulesetV1))
|
||||
{
|
||||
HierarchyRulesetExporter.ExportRulesetV1(rulesetV1, filePath);
|
||||
Object.DestroyImmediate(rulesetV1);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogError($"Cannot find ruleset component on: {gameObject.name}");
|
||||
return;
|
||||
}
|
||||
|
||||
gameObject.AddComponent<HierarchyRulesetV2>();
|
||||
|
||||
// Import ruleset data (all upgrade steps will be done automatically)
|
||||
HierarchyRulesetImporter.ImportRuleset(filePath);
|
||||
EditorSceneManager.SaveScene(scene);
|
||||
File.Delete(filePath);
|
||||
|
||||
Log($"Ruleset successfully updated to latest version: {sceneName}");
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 490a06b1f08a54f43aee59f4a25d7580
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Port/EditorProxyInitializer.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,119 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using static Borodar.RainbowHierarchy.HierarchyRulesetV2;
|
||||
using static Borodar.RainbowHierarchy.RHLogger;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public static class HierarchyRulesetExporter
|
||||
{
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static void Export()
|
||||
{
|
||||
var dirPath = EditorUtility.SaveFolderPanel("Export Rulesets", "", "");
|
||||
if (string.IsNullOrEmpty(dirPath)) return;
|
||||
|
||||
ExportRuleset(dirPath);
|
||||
ExportCustomIcons(dirPath);
|
||||
}
|
||||
|
||||
public static void ExportRulesetV1(HierarchyRuleset ruleset, string filePath)
|
||||
{
|
||||
ConvertObjectRefsToPathsV1(ruleset);
|
||||
|
||||
var rulesetJson = EditorJsonUtility.ToJson(ruleset);
|
||||
var wrapper = new HierarchyRulesetWrapper {
|
||||
Version = HierarchyRuleset.VERSION,
|
||||
RulesetJson = rulesetJson
|
||||
};
|
||||
var wrapperJson = EditorJsonUtility.ToJson(wrapper, true);
|
||||
|
||||
File.WriteAllText(filePath, wrapperJson);
|
||||
|
||||
Log($"Ruleset successfully exported:\n{filePath}");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void ExportRuleset(string dirPath)
|
||||
{
|
||||
foreach (var ruleset in Instances)
|
||||
{
|
||||
ConvertObjectRefsToPaths(ruleset);
|
||||
|
||||
var rulesetJson = EditorJsonUtility.ToJson(ruleset);
|
||||
var wrapper = new HierarchyRulesetWrapper { RulesetJson = rulesetJson };
|
||||
var wrapperJson = EditorJsonUtility.ToJson(wrapper, true);
|
||||
|
||||
var sceneName = ruleset.gameObject.scene.name;
|
||||
var filePath = $"{dirPath}/{sceneName}.{EXTENSION}";
|
||||
|
||||
File.WriteAllText(filePath, wrapperJson);
|
||||
|
||||
Log($"Ruleset successfully exported:\n{filePath}");
|
||||
}
|
||||
}
|
||||
|
||||
private static void ConvertObjectRefsToPaths(HierarchyRulesetV2 ruleset)
|
||||
{
|
||||
foreach (var rule in ruleset.Rules)
|
||||
{
|
||||
if (rule.Type != HierarchyRule.KeyType.Object) continue;
|
||||
if (rule.GameObject == null) continue;
|
||||
|
||||
var transform = rule.GameObject.transform;
|
||||
var path = HierarchyEditorUtility.GetTransformPath(transform);
|
||||
|
||||
rule.Name = path;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ConvertObjectRefsToPathsV1(HierarchyRuleset ruleset)
|
||||
{
|
||||
foreach (var rule in ruleset.Rules)
|
||||
{
|
||||
if (rule.Type != HierarchyRule.KeyType.Object) continue;
|
||||
if (rule.GameObject == null) continue;
|
||||
|
||||
var transform = rule.GameObject.transform;
|
||||
var path = HierarchyEditorUtility.GetTransformPath(transform);
|
||||
|
||||
rule.Name = path;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ExportCustomIcons(string dirPath)
|
||||
{
|
||||
foreach (var ruleset in Instances)
|
||||
{
|
||||
var roots = new Object[] { ruleset };
|
||||
var allDependencies = EditorUtility.CollectDependencies(roots);
|
||||
|
||||
var textureDependencies = (from dependency in allDependencies
|
||||
where dependency is Texture2D
|
||||
select AssetDatabase.GetAssetPath(dependency))
|
||||
.ToArray();
|
||||
|
||||
var sceneName = ruleset.gameObject.scene.name;
|
||||
|
||||
if (!textureDependencies.Any())
|
||||
{
|
||||
Log($"There is no custom icons in ruleset: {sceneName}.\nSkipping package export.");
|
||||
continue;
|
||||
}
|
||||
|
||||
var packagePath = $"{dirPath}/{sceneName}.unitypackage";
|
||||
AssetDatabase.ExportPackage(textureDependencies, packagePath);
|
||||
|
||||
Log($"Package with custom icons successfully exported:\n{packagePath}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb37551f26ecf5249ad80c84af95358f
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Port/HierarchyRulesetExporter.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,131 @@
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using static Borodar.RainbowHierarchy.HierarchyRulesetV2;
|
||||
using static Borodar.RainbowHierarchy.RHLogger;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public static class HierarchyRulesetImporter
|
||||
{
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static void Import()
|
||||
{
|
||||
var path = EditorUtility.OpenFilePanel("Import Ruleset", "", EXTENSION);
|
||||
if (string.IsNullOrEmpty(path)) return;
|
||||
|
||||
ImportCustomIcons(path);
|
||||
ImportRuleset(path);
|
||||
}
|
||||
|
||||
public static void ImportRuleset(string path)
|
||||
{
|
||||
var wrapperJson = File.ReadAllText(path);
|
||||
var wrapper = new HierarchyRulesetWrapper();
|
||||
EditorJsonUtility.FromJsonOverwrite(wrapperJson, wrapper);
|
||||
|
||||
if (wrapper.Version < VERSION)
|
||||
{
|
||||
UpdateFromOlderVersions(wrapper);
|
||||
}
|
||||
|
||||
var activeScene = SceneManager.GetActiveScene();
|
||||
var activeRuleset = GetRulesetByScene(activeScene, true);
|
||||
|
||||
Undo.RecordObject(activeRuleset, "Hierarchy Ruleset Import");
|
||||
EditorJsonUtility.FromJsonOverwrite(wrapper.RulesetJson, activeRuleset);
|
||||
|
||||
ConvertPathsToObjectRefs(activeRuleset);
|
||||
|
||||
Log("Ruleset successfully imported.");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void UpdateFromOlderVersions(HierarchyRulesetWrapper wrapper)
|
||||
{
|
||||
if (wrapper.Version <= 1)
|
||||
{
|
||||
// Convert all icon IDs to xxx00 (e.g 5432 -> 543200)
|
||||
wrapper.RulesetJson = Regex.Replace(
|
||||
wrapper.RulesetJson,
|
||||
"\"IconType\":[1-9]\\d*",
|
||||
match => $"{match}00");
|
||||
|
||||
// Convert all background IDs to xxx00 (e.g 5432 -> 543200)
|
||||
wrapper.RulesetJson = Regex.Replace(
|
||||
wrapper.RulesetJson,
|
||||
"\"BackgroundType\":[1-9]\\d*",
|
||||
match => $"{match}00");
|
||||
|
||||
// Replace particular values
|
||||
wrapper.RulesetJson = wrapper.RulesetJson
|
||||
// General
|
||||
.Replace("\"IconType\":100000,", "\"IconType\":125650,") // CmpAssemblyDefinitionAsset
|
||||
.Replace("\"IconType\":101000,", "\"IconType\":125250,") // CmpCsScript
|
||||
.Replace("\"IconType\":102000,", "\"IconType\":125000,") // CmpDefaultAsset
|
||||
.Replace("\"IconType\":111000,", "\"IconType\":125750,") // CmpShader
|
||||
.Replace("\"IconType\":112000,", "\"IconType\":125150,") // CmpTextAsset
|
||||
.Replace("\"IconType\":115000,", "\"IconType\":125550,") // CmpVisualTreeAsset
|
||||
// Miscellaneous
|
||||
.Replace("\"IconType\":181000,", "\"IconType\":117000,") // Animation
|
||||
.Replace("\"IconType\":182000,", "\"IconType\":117350,") // Animator
|
||||
// Rendering
|
||||
.Replace("\"IconType\":293000,", "\"IconType\":169500,") // Light
|
||||
.Replace("\"IconType\":294000,", "\"IconType\":169550,") // LightProbeGroup
|
||||
.Replace("\"IconType\":295000,", "\"IconType\":169560,") // LightProbeProxyVolume
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ConvertPathsToObjectRefs(HierarchyRulesetV2 ruleset)
|
||||
{
|
||||
for (var i = ruleset.Rules.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var rule = ruleset.Rules[i];
|
||||
if (rule.Type != HierarchyRule.KeyType.Object) continue;
|
||||
|
||||
if (string.IsNullOrEmpty(rule.Name))
|
||||
{
|
||||
ruleset.Rules.RemoveAt(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
var gameObject = GameObject.Find(rule.Name);
|
||||
if (gameObject != null)
|
||||
{
|
||||
// Replace
|
||||
rule.GameObject = gameObject;
|
||||
rule.Name = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Delete
|
||||
ruleset.Rules.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ImportCustomIcons(string path)
|
||||
{
|
||||
var importDir = Path.GetDirectoryName(path);
|
||||
var importFileName = Path.GetFileNameWithoutExtension(path);
|
||||
var packagePath = $"{importDir}/{importFileName}.unitypackage";
|
||||
|
||||
if (!File.Exists(packagePath))
|
||||
{
|
||||
Log("There is no package with custom icons. Skipping package import.");
|
||||
return;
|
||||
}
|
||||
|
||||
AssetDatabase.ImportPackage(packagePath, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5163ed631bd3bed4e90800fb96800cac
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Port/HierarchyRulesetImporter.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
internal sealed class HierarchyRulesetWrapper
|
||||
{
|
||||
#pragma warning disable 414
|
||||
public int Version = HierarchyRulesetV2.VERSION;
|
||||
#pragma warning restore 414
|
||||
|
||||
public string RulesetJson;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: afb932c346aec4c478e65191a53801a8
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Port/HierarchyRulesetWrapper.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b4b81ad75c9b784783e362a89368bac
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,209 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using static Borodar.RainbowHierarchy.HierarchyEditorUtility;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public static class HierarchyPreferences
|
||||
{
|
||||
private const float PREF_LABEL_WIDTH = 150f;
|
||||
|
||||
private const string EDIT_MODIFIER_PKEY = "Borodar.RainbowHierarchy.EditMod.";
|
||||
private const string EDIT_MODIFIER_HINT = "Modifier key that is used to show configuration dialogue when clicking on an object in the hierarchy.";
|
||||
private const EventModifiers EDIT_MODIFIER_DEFAULT = EventModifiers.Alt;
|
||||
|
||||
private const string DRAG_MODIFIER_PKEY = "Borodar.RainbowHierarchy.DragMod.";
|
||||
private const string DRAG_MODIFIER_HINT = "Modifier key that is used to drag configuration dialogue.";
|
||||
private const EventModifiers DRAG_MODIFIER_DEFAULT = EventModifiers.Shift;
|
||||
|
||||
private const string HIDE_CONFIG_PKEY = "Borodar.RainbowHierarchy.HideConfig.";
|
||||
private const string HIDE_CONFIG_HINT = "Change this setting to show/hide the RainbowHierarchyConf object in the hierarchy window.";
|
||||
private const bool HIDE_CONFIG_DEFAULT = false;
|
||||
|
||||
private const string HIERARCHY_TREE_PKEY = "Borodar.RainbowHierarchy.ShowHierarchyTree.";
|
||||
private const string HIERARCHY_TREE_HINT = "Change this setting to show/hide the \"branches\" in the hierarchy window.";
|
||||
private const bool HIERARCHY_TREE_DEFAULT = true;
|
||||
|
||||
private const string ROW_SHADING_PKEY = "Borodar.RainbowHierarchy.RowShading.";
|
||||
private const string ROW_SHADING_HINT = "Change this setting to enable/disable row shading in the hierarchy window.";
|
||||
private const bool ROW_SHADING_DEFAULT = true;
|
||||
|
||||
private static readonly EditorPrefsModifierKey EDIT_MODIFIER_PREF;
|
||||
private static readonly EditorPrefsModifierKey DRAG_MODIFIER_PREF;
|
||||
private static readonly EditorPrefsBoolean HIDE_CONFIG_PREF;
|
||||
|
||||
private static readonly EditorPrefsBoolean HIERARCHY_TREE_PREF;
|
||||
private static readonly EditorPrefsBoolean ROW_SHADING_PREF;
|
||||
|
||||
private static EventModifiers _editModifier;
|
||||
private static EventModifiers _dragModifier;
|
||||
public static bool HideConfig;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Properties
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static bool ShowHierarchyTree { get; private set; }
|
||||
public static bool DrawRowShading { get; private set; }
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctors
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
static HierarchyPreferences()
|
||||
{
|
||||
// General
|
||||
|
||||
var editModifierLabel = new GUIContent("Edit Modifier", EDIT_MODIFIER_HINT);
|
||||
EDIT_MODIFIER_PREF = new EditorPrefsModifierKey(EDIT_MODIFIER_PKEY + ProjectName, EDIT_MODIFIER_DEFAULT, editModifierLabel);
|
||||
EDIT_MODIFIER_PREF.Changed += OnEditModifierChanged;
|
||||
_editModifier = EDIT_MODIFIER_PREF.Value;
|
||||
|
||||
var dragModifierLabel = new GUIContent("Drag Modifier", DRAG_MODIFIER_HINT);
|
||||
DRAG_MODIFIER_PREF = new EditorPrefsModifierKey(DRAG_MODIFIER_PKEY + ProjectName, DRAG_MODIFIER_DEFAULT, dragModifierLabel);
|
||||
DRAG_MODIFIER_PREF.Changed += OnDragModifierChanged;
|
||||
_dragModifier = DRAG_MODIFIER_PREF.Value;
|
||||
|
||||
var hideConfigLabel = new GUIContent("Hide Config", HIDE_CONFIG_HINT);
|
||||
HIDE_CONFIG_PREF = new EditorPrefsBoolean(HIDE_CONFIG_PKEY + ProjectName, HIDE_CONFIG_DEFAULT, hideConfigLabel, PREF_LABEL_WIDTH);
|
||||
HIDE_CONFIG_PREF.Changed += OnHideConfigChanged;
|
||||
HideConfig = HIDE_CONFIG_PREF.Value;
|
||||
|
||||
// Enhancements
|
||||
|
||||
var hierarchyTreeLabel = new GUIContent("Hierarchy Tree", HIERARCHY_TREE_HINT);
|
||||
HIERARCHY_TREE_PREF = new EditorPrefsBoolean(HIERARCHY_TREE_PKEY + ProjectName, HIERARCHY_TREE_DEFAULT, hierarchyTreeLabel, PREF_LABEL_WIDTH);
|
||||
HIERARCHY_TREE_PREF.Changed += OnHierarchyTreeChanged;
|
||||
ShowHierarchyTree = HIERARCHY_TREE_PREF.Value;
|
||||
|
||||
var rowShadingLabel = new GUIContent("Row Shading", ROW_SHADING_HINT);
|
||||
ROW_SHADING_PREF = new EditorPrefsBoolean(ROW_SHADING_PKEY + ProjectName, ROW_SHADING_DEFAULT, rowShadingLabel, PREF_LABEL_WIDTH);
|
||||
ROW_SHADING_PREF.Changed += OnRowShadingChanged;
|
||||
DrawRowShading = ROW_SHADING_PREF.Value;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
[SettingsProvider]
|
||||
[SuppressMessage("ReSharper", "UnusedMember.Global")]
|
||||
public static SettingsProvider CreateSettingProvider()
|
||||
{
|
||||
return new SettingsProvider("Borodar/RainbowHierarchy", SettingsScope.Project)
|
||||
{
|
||||
label = AssetInfo.NAME,
|
||||
guiHandler = OnGUI
|
||||
};
|
||||
}
|
||||
|
||||
public static bool IsEditModifierPressed(Event e)
|
||||
{
|
||||
return (e.modifiers & _editModifier) == _editModifier;
|
||||
}
|
||||
|
||||
public static bool IsDragModifierPressed(Event e)
|
||||
{
|
||||
return (e.modifiers & _dragModifier) == _dragModifier;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Messages
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void OnGUI(string searchContext)
|
||||
{
|
||||
DrawGeneralSection();
|
||||
DrawEnhancementsSection();
|
||||
DrawImportExportSection();
|
||||
|
||||
DrawVersionAtBottom();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// OnChange
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void OnEditModifierChanged(EventModifiers value)
|
||||
{
|
||||
_editModifier = value;
|
||||
}
|
||||
|
||||
private static void OnDragModifierChanged(EventModifiers value)
|
||||
{
|
||||
_dragModifier = value;
|
||||
}
|
||||
|
||||
private static void OnHideConfigChanged(bool value)
|
||||
{
|
||||
HideConfig = value;
|
||||
UpdateSceneConfigVisibility(!value);
|
||||
}
|
||||
|
||||
private static void OnHierarchyTreeChanged(bool value)
|
||||
{
|
||||
ShowHierarchyTree = value;
|
||||
EditorApplication.RepaintHierarchyWindow();
|
||||
}
|
||||
|
||||
private static void OnRowShadingChanged(bool value)
|
||||
{
|
||||
DrawRowShading = value;
|
||||
EditorApplication.RepaintHierarchyWindow();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void DrawGeneralSection()
|
||||
{
|
||||
DrawHeader("General");
|
||||
|
||||
EDIT_MODIFIER_PREF.Draw();
|
||||
DRAG_MODIFIER_PREF.Draw();
|
||||
TinySeparator();
|
||||
HIDE_CONFIG_PREF.Draw();
|
||||
}
|
||||
|
||||
private static void DrawEnhancementsSection()
|
||||
{
|
||||
DrawHeader("Enhancements");
|
||||
|
||||
HIERARCHY_TREE_PREF.Draw();
|
||||
TinySeparator();
|
||||
ROW_SHADING_PREF.Draw();
|
||||
}
|
||||
|
||||
private static void DrawImportExportSection()
|
||||
{
|
||||
DrawHeader("Import / Export Ruleset (Current Scene)");
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
{
|
||||
if (GUILayout.Button("Import")) HierarchyRulesetImporter.Import();;
|
||||
if (GUILayout.Button("Export")) HierarchyRulesetExporter.Export();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
private static void DrawVersionAtBottom()
|
||||
{
|
||||
GUILayout.FlexibleSpace();
|
||||
EditorGUILayout.LabelField("Version " + AssetInfo.VERSION, EditorStyles.centeredGreyMiniLabel);
|
||||
}
|
||||
|
||||
private static void DrawHeader(string label)
|
||||
{
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField(label, EditorStyles.boldLabel);
|
||||
EditorGUILayout.Separator();
|
||||
}
|
||||
|
||||
private static void TinySeparator()
|
||||
{
|
||||
GUILayoutUtility.GetRect(0f, 0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2042b261749a0f445852e9bccb9fc16f
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Prefs/HierarchyPreferences.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aadfdb1af2564164c82e867ffc82322b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public class EditorPrefsBoolean : EditorPrefsItem<bool>
|
||||
{
|
||||
private readonly float _labelWidth;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctors
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public EditorPrefsBoolean(string key, bool defaultValue, GUIContent label, float labelWidth)
|
||||
: base(key, defaultValue, label)
|
||||
{
|
||||
_labelWidth = labelWidth;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Properties
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public override bool Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return EditorPrefs.GetBool(Key, DefaultValue);
|
||||
}
|
||||
set
|
||||
{
|
||||
if (Value == value) return;
|
||||
EditorPrefs.SetBool(Key, value);
|
||||
OnValueChanged(value);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public override void Draw()
|
||||
{
|
||||
EditorGUIUtility.labelWidth = _labelWidth;
|
||||
Value = EditorGUILayout.Toggle(Label, Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 58b12300e92a4024e80ebdcc971eb99a
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Prefs/Items/EditorPrefsBoolean.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public abstract class EditorPrefsItem<T>
|
||||
{
|
||||
protected readonly string Key;
|
||||
protected readonly GUIContent Label;
|
||||
protected readonly T DefaultValue;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Properties
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public abstract T Value { get; set; }
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Events
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public event Action<T> Changed;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctors
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
protected EditorPrefsItem(string key, T defaultValue, GUIContent label)
|
||||
{
|
||||
if (string.IsNullOrEmpty(key))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(key));
|
||||
}
|
||||
|
||||
Key = key;
|
||||
DefaultValue = defaultValue;
|
||||
Label = label;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public abstract void Draw();
|
||||
|
||||
public static implicit operator T(EditorPrefsItem<T> s)
|
||||
{
|
||||
return s.Value;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Protected
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
protected void OnValueChanged(T value)
|
||||
{
|
||||
Changed?.Invoke(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9fbb9f2704df024d81d73f8193af9e8
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Prefs/Items/EditorPrefsItem.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public class EditorPrefsModifierKey : EditorPrefsItem<EventModifiers> {
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctors
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public EditorPrefsModifierKey(string key, EventModifiers defaultValue, GUIContent label)
|
||||
: base(key, defaultValue, label) { }
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Properties
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public override EventModifiers Value {
|
||||
get
|
||||
{
|
||||
var index = EditorPrefs.GetInt(Key, (int) DefaultValue);
|
||||
return (Enum.IsDefined(typeof(EventModifiers), index)) ? (EventModifiers) index : DefaultValue;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (Value == value) return;
|
||||
EditorPrefs.SetInt(Key, (int) value);
|
||||
OnValueChanged(value);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public override void Draw() {
|
||||
Value = (EventModifiers) EditorGUILayout.EnumPopup(Label, Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5499329b412119a45b04357956aeda19
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Prefs/Items/EditorPrefsModifierKey.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ca69afbdf78a7564cae7ca1a53c6fe08
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Chris Foulston
|
||||
|
||||
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,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 609221f9a89122145b14c121a191318e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RList/LICENSE
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,110 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy.RList {
|
||||
|
||||
[Serializable]
|
||||
public abstract class ReorderableArray<T> : ICloneable, IList<T>, ICollection<T>, IEnumerable<T> {
|
||||
|
||||
[SerializeField]
|
||||
private List<T> array = new List<T>();
|
||||
|
||||
public ReorderableArray()
|
||||
: this(0) {
|
||||
}
|
||||
|
||||
public ReorderableArray(int length) {
|
||||
|
||||
array = new List<T>(length);
|
||||
}
|
||||
|
||||
public T this[int index] {
|
||||
|
||||
get { return array[index]; }
|
||||
set { array[index] = value; }
|
||||
}
|
||||
|
||||
public int Length {
|
||||
|
||||
get { return array.Count; }
|
||||
}
|
||||
|
||||
public bool IsReadOnly {
|
||||
|
||||
get { return false; }
|
||||
}
|
||||
|
||||
public int Count {
|
||||
|
||||
get { return array.Count; }
|
||||
}
|
||||
|
||||
public object Clone() {
|
||||
|
||||
return new List<T>(array);
|
||||
}
|
||||
|
||||
public void CopyFrom(IEnumerable<T> value) {
|
||||
|
||||
array.Clear();
|
||||
array.AddRange(value);
|
||||
}
|
||||
|
||||
public bool Contains(T value) {
|
||||
|
||||
return array.Contains(value);
|
||||
}
|
||||
|
||||
public int IndexOf(T value) {
|
||||
|
||||
return array.IndexOf(value);
|
||||
}
|
||||
|
||||
public void Insert(int index, T item) {
|
||||
|
||||
array.Insert(index, item);
|
||||
}
|
||||
|
||||
public void RemoveAt(int index) {
|
||||
|
||||
array.RemoveAt(index);
|
||||
}
|
||||
|
||||
public void Add(T item) {
|
||||
|
||||
array.Add(item);
|
||||
}
|
||||
|
||||
public void Clear() {
|
||||
|
||||
array.Clear();
|
||||
}
|
||||
|
||||
public void CopyTo(T[] array, int arrayIndex) {
|
||||
|
||||
this.array.CopyTo(array, arrayIndex);
|
||||
}
|
||||
|
||||
public bool Remove(T item) {
|
||||
|
||||
return array.Remove(item);
|
||||
}
|
||||
|
||||
public T[] ToArray() {
|
||||
|
||||
return array.ToArray();
|
||||
}
|
||||
|
||||
public IEnumerator<T> GetEnumerator() {
|
||||
|
||||
return array.GetEnumerator();
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator() {
|
||||
|
||||
return array.GetEnumerator();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff2fb36905dd14a47916cba5057343f0
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RList/ReorderableArray.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy.RList {
|
||||
|
||||
public class ReorderableAttribute : PropertyAttribute {
|
||||
|
||||
public bool add;
|
||||
public bool remove;
|
||||
public bool draggable;
|
||||
public bool singleLine;
|
||||
public bool paginate;
|
||||
public bool sortable;
|
||||
public int pageSize;
|
||||
public string elementNameProperty;
|
||||
public string elementNameOverride;
|
||||
public string elementIconPath;
|
||||
public Type surrogateType;
|
||||
public string surrogateProperty;
|
||||
|
||||
public ReorderableAttribute()
|
||||
: this(null) {
|
||||
}
|
||||
|
||||
public ReorderableAttribute(string elementNameProperty)
|
||||
: this(true, true, true, elementNameProperty, null, null) {
|
||||
}
|
||||
|
||||
public ReorderableAttribute(string elementNameProperty, string elementIconPath)
|
||||
: this(true, true, true, elementNameProperty, null, elementIconPath) {
|
||||
}
|
||||
|
||||
public ReorderableAttribute(string elementNameProperty, string elementNameOverride, string elementIconPath)
|
||||
: this(true, true, true, elementNameProperty, elementNameOverride, elementIconPath) {
|
||||
}
|
||||
|
||||
public ReorderableAttribute(bool add, bool remove, bool draggable, string elementNameProperty = null, string elementIconPath = null)
|
||||
: this(add, remove, draggable, elementNameProperty, null, elementIconPath) {
|
||||
}
|
||||
|
||||
public ReorderableAttribute(bool add, bool remove, bool draggable, string elementNameProperty = null, string elementNameOverride = null, string elementIconPath = null) {
|
||||
|
||||
this.add = add;
|
||||
this.remove = remove;
|
||||
this.draggable = draggable;
|
||||
this.elementNameProperty = elementNameProperty;
|
||||
this.elementNameOverride = elementNameOverride;
|
||||
this.elementIconPath = elementIconPath;
|
||||
|
||||
sortable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a742bfa155a4d6f429285e9960422f18
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RList/ReorderableAttribute.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,141 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
namespace Borodar.RainbowHierarchy.RList {
|
||||
|
||||
[CustomPropertyDrawer(typeof(ReorderableAttribute))]
|
||||
public class ReorderableDrawer : PropertyDrawer {
|
||||
|
||||
public const string ARRAY_PROPERTY_NAME = "array";
|
||||
|
||||
private static Dictionary<int, ReorderableList> lists = new Dictionary<int, ReorderableList>();
|
||||
|
||||
[Obsolete("CanCacheInspectorGUI has been deprecated and is no longer used.", false)]
|
||||
public override bool CanCacheInspectorGUI(SerializedProperty property) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
|
||||
|
||||
ReorderableList list = GetList(property, attribute as ReorderableAttribute, ARRAY_PROPERTY_NAME);
|
||||
|
||||
return list != null ? list.GetHeight() : EditorGUIUtility.singleLineHeight;
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
|
||||
|
||||
ReorderableList list = GetList(property, attribute as ReorderableAttribute, ARRAY_PROPERTY_NAME);
|
||||
|
||||
if (list != null) {
|
||||
|
||||
list.DoList(EditorGUI.IndentedRect(position), label);
|
||||
}
|
||||
else {
|
||||
|
||||
GUI.Label(position, "Array must extend from ReorderableArray", EditorStyles.label);
|
||||
}
|
||||
}
|
||||
|
||||
public static int GetListId(SerializedProperty property) {
|
||||
|
||||
if (property != null) {
|
||||
|
||||
int h1 = property.serializedObject.targetObject.GetHashCode();
|
||||
int h2 = property.propertyPath.GetHashCode();
|
||||
|
||||
return (((h1 << 5) + h1) ^ h2);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static ReorderableList GetList(SerializedProperty property, string arrayPropertyName) {
|
||||
|
||||
return GetList(property, null, GetListId(property), arrayPropertyName);
|
||||
}
|
||||
|
||||
public static ReorderableList GetList(SerializedProperty property, ReorderableAttribute attrib, string arrayPropertyName) {
|
||||
|
||||
return GetList(property, attrib, GetListId(property), arrayPropertyName);
|
||||
}
|
||||
|
||||
public static ReorderableList GetList(SerializedProperty property, int id, string arrayPropertyName) {
|
||||
|
||||
return GetList(property, null, id, arrayPropertyName);
|
||||
}
|
||||
|
||||
public static ReorderableList GetList(SerializedProperty property, ReorderableAttribute attrib, int id, string arrayPropertyName) {
|
||||
|
||||
if (property == null) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
ReorderableList list = null;
|
||||
SerializedProperty array = property.FindPropertyRelative(arrayPropertyName);
|
||||
|
||||
if (array != null && array.isArray) {
|
||||
|
||||
if (!lists.TryGetValue(id, out list)) {
|
||||
|
||||
if (attrib != null) {
|
||||
|
||||
Texture icon = !string.IsNullOrEmpty(attrib.elementIconPath) ? AssetDatabase.GetCachedIcon(attrib.elementIconPath) : null;
|
||||
|
||||
ReorderableList.ElementDisplayType displayType = attrib.singleLine ? ReorderableList.ElementDisplayType.SingleLine : ReorderableList.ElementDisplayType.Auto;
|
||||
|
||||
list = new ReorderableList(array, attrib.add, attrib.remove, attrib.draggable, displayType, attrib.elementNameProperty, attrib.elementNameOverride, icon);
|
||||
list.paginate = attrib.paginate;
|
||||
list.pageSize = attrib.pageSize;
|
||||
list.sortable = attrib.sortable;
|
||||
|
||||
//handle surrogate if any
|
||||
|
||||
if (attrib.surrogateType != null) {
|
||||
|
||||
SurrogateCallback callback = new SurrogateCallback(attrib.surrogateProperty);
|
||||
|
||||
list.surrogate = new ReorderableList.Surrogate(attrib.surrogateType, callback.SetReference);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
list = new ReorderableList(array, true, true, true);
|
||||
}
|
||||
|
||||
lists.Add(id, list);
|
||||
}
|
||||
else {
|
||||
|
||||
list.List = array;
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private struct SurrogateCallback {
|
||||
|
||||
private string property;
|
||||
|
||||
internal SurrogateCallback(string property) {
|
||||
|
||||
this.property = property;
|
||||
}
|
||||
|
||||
internal void SetReference(SerializedProperty element, Object objectReference, ReorderableList list) {
|
||||
|
||||
SerializedProperty prop = !string.IsNullOrEmpty(property) ? element.FindPropertyRelative(property) : null;
|
||||
|
||||
if (prop != null && prop.propertyType == SerializedPropertyType.ObjectReference) {
|
||||
|
||||
prop.objectReferenceValue = objectReference;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e6c549c0f86e7d4bb4d52b49fd1052c
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RList/ReorderableDrawer.cs
|
||||
uploadId: 716077
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc6c2a114d6b2a646a7240a0b7517898
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RList/ReorderableList.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,353 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using SiblingIndex = Borodar.RainbowHierarchy.HierarchyEditorUtility.SiblingIndex;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[InitializeOnLoad]
|
||||
public static class RainbowHierarchyGUI
|
||||
{
|
||||
private const float DRAW_OFFSET = 28f;
|
||||
|
||||
private static readonly Color ROW_SHADING_COLOR = new Color(0f, 0f, 0f, 0.03f);
|
||||
private static readonly List<GameObject> RECURSIVE_OBJECTS = new List<GameObject>();
|
||||
private static bool _multiSelection;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Ctor
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
static RainbowHierarchyGUI()
|
||||
{
|
||||
EditorApplication.hierarchyChanged += HierarchyWindowChanged;
|
||||
EditorApplication.hierarchyWindowItemOnGUI += RainbowHierarchyItemOnGUI;
|
||||
HierarchyRulesetV2.OnRulesetChangeCallback += OnRulesetChange;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Delegates
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void HierarchyWindowChanged()
|
||||
{
|
||||
HierarchyEditorUtility.UpdateSceneConfigVisibility(!HierarchyPreferences.HideConfig);
|
||||
RECURSIVE_OBJECTS.Clear();
|
||||
}
|
||||
|
||||
private static void OnRulesetChange()
|
||||
{
|
||||
RECURSIVE_OBJECTS.Clear();
|
||||
}
|
||||
|
||||
private static void RainbowHierarchyItemOnGUI(int instanceId, Rect selectionRect)
|
||||
{
|
||||
var gameObject = (GameObject)EditorUtility.InstanceIDToObject(instanceId);
|
||||
if (gameObject == null) return;
|
||||
|
||||
DrawRowShading(selectionRect);
|
||||
DrawFoldouts(gameObject, selectionRect);
|
||||
ReplaceHierarchyTextures(instanceId, gameObject, selectionRect);
|
||||
DrawEditIcon(gameObject, selectionRect);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// GUI
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void DrawRowShading(Rect selectionRect)
|
||||
{
|
||||
if (!HierarchyPreferences.DrawRowShading) return;
|
||||
|
||||
var isOdd = Mathf.FloorToInt(((selectionRect.y - 4) / 16) % 2) != 0;
|
||||
if (isOdd) return;
|
||||
|
||||
var foldoutRect = new Rect(selectionRect);
|
||||
foldoutRect.width += selectionRect.x + 16f;
|
||||
foldoutRect.height += 1f;
|
||||
|
||||
foldoutRect.x = DRAW_OFFSET;
|
||||
|
||||
// Background
|
||||
EditorGUI.DrawRect(foldoutRect, ROW_SHADING_COLOR);
|
||||
// Top line
|
||||
foldoutRect.height = 1f;
|
||||
EditorGUI.DrawRect(foldoutRect, ROW_SHADING_COLOR);
|
||||
// Bottom line
|
||||
foldoutRect.y += 16f;
|
||||
EditorGUI.DrawRect(foldoutRect, ROW_SHADING_COLOR);
|
||||
}
|
||||
|
||||
private static void DrawFoldouts(GameObject gameObject, Rect selectionRect)
|
||||
{
|
||||
if (!HierarchyPreferences.ShowHierarchyTree || IsShowInSearch(selectionRect)) return;
|
||||
|
||||
const float textureWidth = 128f;
|
||||
|
||||
var fx = Mathf.Max(DRAW_OFFSET, selectionRect.x - textureWidth - 16f);
|
||||
var fw = Mathf.Min(textureWidth, selectionRect.x - 16f - DRAW_OFFSET);
|
||||
var foldoutRect = new Rect(selectionRect) {width = fw, x = fx};
|
||||
|
||||
var tw = foldoutRect.width / textureWidth;
|
||||
var texCoords = new Rect(1 - tw,0,tw,1f);
|
||||
|
||||
GUI.DrawTextureWithTexCoords(foldoutRect, HierarchyEditorUtility.GetFoldoutLevelsIcon(), texCoords);
|
||||
|
||||
var transform = gameObject.transform;
|
||||
if (transform.childCount > 0) return;
|
||||
|
||||
var index = GetSiblingIndex(transform);
|
||||
foldoutRect.width = 16f;
|
||||
|
||||
foldoutRect.x = selectionRect.x - 16f;
|
||||
|
||||
GUI.DrawTexture(foldoutRect, HierarchyEditorUtility.GetFoldoutIcon(index));
|
||||
}
|
||||
|
||||
private static void ReplaceHierarchyTextures(int instanceId, GameObject gameObject, Rect selectionRect)
|
||||
{
|
||||
if (EditorSceneManager.IsPreviewSceneObject(gameObject)) return;
|
||||
|
||||
var currentScene = gameObject.scene;
|
||||
var ruleset = HierarchyRulesetV2.GetRulesetByScene(currentScene);
|
||||
if (ruleset == null || ruleset.Rules.Count == 0) return;
|
||||
|
||||
var normalItem = ruleset.GetRule(gameObject);
|
||||
var recursiveItem = GetRecursiveItemByObject(gameObject, ruleset);
|
||||
|
||||
if (normalItem != null)
|
||||
{
|
||||
UpdateRecursiveObjectsList(ruleset, normalItem, gameObject);
|
||||
|
||||
if (recursiveItem != null)
|
||||
{
|
||||
DrawItemWithBiggerPriority(instanceId, selectionRect, ruleset, normalItem, recursiveItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawNormalItem(instanceId, selectionRect, normalItem);
|
||||
}
|
||||
}
|
||||
else if (recursiveItem != null)
|
||||
{
|
||||
DrawRecursiveItem(instanceId, selectionRect, recursiveItem);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DrawEditIcon(GameObject gameObject, Rect selectionRect)
|
||||
{
|
||||
if (!HierarchyPreferences.IsEditModifierPressed(Event.current))
|
||||
{
|
||||
_multiSelection = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (EditorSceneManager.IsPreviewSceneObject(gameObject)) return;
|
||||
|
||||
var isMouseOver = selectionRect.Contains(Event.current.mousePosition);
|
||||
var isSelected = IsSelected(gameObject);
|
||||
_multiSelection = isSelected ? isMouseOver || _multiSelection : !isMouseOver && _multiSelection;
|
||||
|
||||
// if mouse is not over current object icon or selected group
|
||||
if (!isMouseOver && (!isSelected || !_multiSelection)) return;
|
||||
|
||||
var editIcon = HierarchyEditorUtility.GetEditIcon();
|
||||
DrawCustomIcon(editIcon, selectionRect);
|
||||
|
||||
if (GUI.Button(selectionRect, GUIContent.none, GUIStyle.none))
|
||||
{
|
||||
ShowPopupWindow(selectionRect, gameObject);
|
||||
}
|
||||
|
||||
EditorApplication.RepaintHierarchyWindow();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void DrawItemWithBiggerPriority(int instanceId, Rect selectionRect, HierarchyRulesetV2 conf, HierarchyRule normalRule, HierarchyRule recursiveRule)
|
||||
{
|
||||
if (recursiveRule.Priority > normalRule.Priority)
|
||||
{
|
||||
DrawRecursiveItem(instanceId, selectionRect, recursiveRule);
|
||||
}
|
||||
else if (recursiveRule.Priority == normalRule.Priority)
|
||||
{
|
||||
DrawItemWithGreaterOrdinal(instanceId, selectionRect, conf, normalRule, recursiveRule);
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawNormalItem(instanceId, selectionRect, normalRule);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DrawItemWithGreaterOrdinal(int instanceId, Rect selectionRect, HierarchyRulesetV2 conf, HierarchyRule normalRule, HierarchyRule recursiveRule)
|
||||
{
|
||||
if (recursiveRule.Ordinal > normalRule.Ordinal)
|
||||
{
|
||||
DrawRecursiveItem(instanceId, selectionRect, recursiveRule);
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawNormalItem(instanceId, selectionRect, normalRule);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DrawNormalItem(int instanceId, Rect selectionRect, HierarchyRule normalRule)
|
||||
{
|
||||
ReplaceIcon(instanceId, normalRule);
|
||||
DrawCustomBackground(normalRule, selectionRect);
|
||||
}
|
||||
|
||||
private static void DrawRecursiveItem(int instanceId, Rect selectionRect, HierarchyRule recursiveRule)
|
||||
{
|
||||
if (recursiveRule.IsIconRecursive) ReplaceIcon(instanceId, recursiveRule);
|
||||
if (recursiveRule.IsBackgroundRecursive) DrawCustomBackground(recursiveRule, selectionRect);
|
||||
}
|
||||
|
||||
private static void ReplaceIcon(int instanceId, HierarchyRule rule)
|
||||
{
|
||||
if (rule == null || !rule.HasIcon()) return;
|
||||
var icon = rule.HasCustomIcon()
|
||||
? rule.IconTexture
|
||||
: HierarchyIconsStorage.GetIcon(rule.IconType);
|
||||
HierarchyWindowAdapter.ApplyIconByInstanceId(instanceId, icon);
|
||||
}
|
||||
|
||||
private static void DrawCustomIcon(Texture icon, Rect selectionRect)
|
||||
{
|
||||
var iconRect = new Rect(selectionRect) {width = 16f};
|
||||
GUI.DrawTexture(iconRect, icon);
|
||||
}
|
||||
|
||||
private static void DrawCustomBackground(HierarchyRule rule, Rect selectionRect)
|
||||
{
|
||||
if (rule == null || !rule.HasBackground()) return;
|
||||
|
||||
selectionRect.x += 17f;
|
||||
|
||||
var background = rule.HasCustomBackground()
|
||||
? rule.BackgroundTexture
|
||||
: HierarchyBackgroundsStorage.GetBackground(rule.BackgroundType);
|
||||
GUI.DrawTexture(selectionRect, background);
|
||||
}
|
||||
|
||||
private static void ShowPopupWindow(Rect selectionRect, GameObject currentObject)
|
||||
{
|
||||
var window = HierarchyPopupWindow.GetDraggableWindow();
|
||||
var position = GUIUtility.GUIToScreenPoint(selectionRect.position + new Vector2(0, selectionRect.height + 2));
|
||||
|
||||
if (_multiSelection)
|
||||
{
|
||||
var gameObjects = Selection.gameObjects.ToList();
|
||||
var index = gameObjects.IndexOf(currentObject);
|
||||
window.ShowWithParams(position, gameObjects, index);
|
||||
}
|
||||
else
|
||||
{
|
||||
window.ShowWithParams(position, new List<GameObject> {currentObject}, 0);
|
||||
}
|
||||
}
|
||||
|
||||
private static HierarchyRule GetRecursiveItemByObject(GameObject gameObject, HierarchyRulesetV2 ruleset)
|
||||
{
|
||||
for (var i = RECURSIVE_OBJECTS.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (RECURSIVE_OBJECTS[i] == null)
|
||||
{
|
||||
RECURSIVE_OBJECTS.RemoveAt(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!gameObject.transform.IsChildOf(RECURSIVE_OBJECTS[i].transform))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var parentRule = ruleset.GetRule(RECURSIVE_OBJECTS[i]);
|
||||
if (parentRule == null)
|
||||
{
|
||||
RECURSIVE_OBJECTS.RemoveAt(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (parentRule.IsRecursive())
|
||||
{
|
||||
return parentRule;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "InvertIf")]
|
||||
private static void UpdateRecursiveObjectsList(HierarchyRulesetV2 conf, HierarchyRule currentRule, GameObject currentObject)
|
||||
{
|
||||
if (currentRule.IsRecursive())
|
||||
{
|
||||
if (!RECURSIVE_OBJECTS.Contains(currentObject))
|
||||
{
|
||||
for (var index = 0; index < RECURSIVE_OBJECTS.Count; index++)
|
||||
{
|
||||
var listObject = RECURSIVE_OBJECTS[index];
|
||||
if (listObject == null) continue;
|
||||
|
||||
var listItem = conf.GetRule(listObject);
|
||||
if (listItem == null) continue;
|
||||
|
||||
if (currentRule.Priority < listItem.Priority)
|
||||
{
|
||||
RECURSIVE_OBJECTS.Insert(index, currentObject);
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentRule.Priority == listItem.Priority)
|
||||
{
|
||||
var currentOrdinal = conf.Rules.IndexOf(currentRule);
|
||||
var listOrdinal = conf.Rules.IndexOf(listItem);
|
||||
|
||||
if (currentOrdinal < listOrdinal)
|
||||
{
|
||||
RECURSIVE_OBJECTS.Insert(index, currentObject);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RECURSIVE_OBJECTS.Add(currentObject);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RECURSIVE_OBJECTS.Remove(currentObject);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsSelected(GameObject gameObject)
|
||||
{
|
||||
return Selection.gameObjects.Contains(gameObject);
|
||||
}
|
||||
|
||||
private static bool IsShowInSearch(Rect iconRect)
|
||||
{
|
||||
return iconRect.x == 16f;
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "ConvertIfStatementToReturnStatement")]
|
||||
private static SiblingIndex GetSiblingIndex(Transform transform)
|
||||
{
|
||||
var parent = transform.parent;
|
||||
var parentChildCount = (parent != null) ? parent.childCount : transform.gameObject.scene.rootCount;
|
||||
var siblingIndex = transform.GetSiblingIndex();
|
||||
|
||||
if (siblingIndex == 0) return SiblingIndex.First;
|
||||
if (siblingIndex == parentChildCount - 1) return SiblingIndex.Last;
|
||||
|
||||
return SiblingIndex.Middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1e9709c7ea6ee64bb8e4a6962b09dbd
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/RainbowHierarchyGUI.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcc187ba40bab2e4abb458923e06c026
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,222 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(HierarchyRule))]
|
||||
public class HierarchyRuleDrawer: PropertyDrawer
|
||||
{
|
||||
private const float PADDING = 8f;
|
||||
private const float SPACING = 2f;
|
||||
private const float LINE_HEIGHT = 18f;
|
||||
private const float LABELS_WIDTH = 92f;
|
||||
private const float ICON_WIDTH = 16f;
|
||||
private const float PROPERTY_HEIGHT = 142f;
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
var isHidden = property.FindPropertyRelative("IsHidden").boolValue;
|
||||
if (isHidden) return;
|
||||
|
||||
var originalPosition = position;
|
||||
var serializedItem = new SerializedItemWrapper(property);
|
||||
var serializedObject = property.serializedObject;
|
||||
|
||||
DrawLabels(ref position, serializedItem);
|
||||
DrawValues(ref position, originalPosition, serializedItem, serializedObject);
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||||
{
|
||||
var isHidden = property.FindPropertyRelative("IsHidden").boolValue;
|
||||
if (isHidden) return 0;
|
||||
|
||||
var iconType = property.FindPropertyRelative("IconType");
|
||||
var backgroundType = property.FindPropertyRelative("BackgroundType");
|
||||
var hasCustomIcon = (iconType.intValue == (int) HierarchyIcon.Custom);
|
||||
var hasCustomBackground = (backgroundType.intValue == (int) HierarchyBackground.Custom);
|
||||
|
||||
var height = PROPERTY_HEIGHT;
|
||||
if (hasCustomIcon) height += LINE_HEIGHT + SPACING;
|
||||
if (hasCustomBackground) height += LINE_HEIGHT + SPACING;
|
||||
|
||||
return height;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private static void DrawLabels(ref Rect position, SerializedItemWrapper item)
|
||||
{
|
||||
position.y += PADDING;
|
||||
position.width = LABELS_WIDTH;
|
||||
position.height = LINE_HEIGHT;
|
||||
EditorGUI.PropertyField(position, item.ItemType, GUIContent.none);
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING * 2f;
|
||||
EditorGUI.LabelField(position, "Priority");
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING * 3f;
|
||||
EditorGUI.LabelField(position, "Icon");
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING;
|
||||
|
||||
if (item.HasIcon)
|
||||
{
|
||||
position.width = ICON_WIDTH;
|
||||
position.height = ICON_WIDTH;
|
||||
|
||||
var texture = (item.HasCustomIcon)
|
||||
? (Texture2D) item.IconTexture.objectReferenceValue
|
||||
: HierarchyIconsStorage.GetIcon(item.IconType.intValue);
|
||||
|
||||
if (texture != null) GUI.DrawTexture(position, texture);
|
||||
|
||||
position.width = LABELS_WIDTH;
|
||||
position.height = LINE_HEIGHT;
|
||||
}
|
||||
|
||||
position.y += (item.HasCustomIcon) ? 2f * LINE_HEIGHT + PADDING : LINE_HEIGHT + PADDING - SPACING;
|
||||
EditorGUI.LabelField(position, "Background");
|
||||
position.y += LINE_HEIGHT + SPACING;
|
||||
|
||||
if (item.HasBackground)
|
||||
{
|
||||
position.width = ICON_WIDTH * 3f;
|
||||
position.height = ICON_WIDTH;
|
||||
|
||||
var texture = (item.HasCustomBackground)
|
||||
? (Texture2D) item.Background.objectReferenceValue
|
||||
: HierarchyBackgroundsStorage.GetBackground(item.BackgroundType.intValue);
|
||||
|
||||
if (texture != null) GUI.DrawTexture(position, texture);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void DrawValues(ref Rect position, Rect originalPosition, SerializedItemWrapper item, SerializedObject serializedObject)
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
|
||||
position.x += LABELS_WIDTH + PADDING;
|
||||
position.y = originalPosition.y + PADDING;
|
||||
position.width = originalPosition.width - LABELS_WIDTH - PADDING;
|
||||
|
||||
var property = item.ItemType.intValue == 0 ? item.GameObject : item.Name;
|
||||
EditorGUI.PropertyField(position, property, GUIContent.none);
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING * 2f;
|
||||
EditorGUI.PropertyField(position, item.Priority, GUIContent.none);
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING * 3f;
|
||||
DrawIconPopupMenu(position, item.Property, item.IconType.intValue);
|
||||
|
||||
if (item.HasCustomIcon)
|
||||
{
|
||||
position.y += LINE_HEIGHT + SPACING + 1f;
|
||||
EditorGUI.PropertyField(position, item.IconTexture, GUIContent.none);
|
||||
position.y -= SPACING;
|
||||
}
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING;
|
||||
EditorGUI.PropertyField(position, item.IconRecursive, GUIContent.none);
|
||||
position.x += ICON_WIDTH;
|
||||
EditorGUI.LabelField(position, "Recursive");
|
||||
position.x -= ICON_WIDTH;
|
||||
|
||||
position.y += LINE_HEIGHT + PADDING;
|
||||
DrawBackgroundPopupMenu(position, item.Property, item.BackgroundType.intValue);
|
||||
|
||||
if (item.HasCustomBackground)
|
||||
{
|
||||
position.y += LINE_HEIGHT + SPACING + 1f;
|
||||
EditorGUI.PropertyField(position, item.Background, GUIContent.none);
|
||||
position.y -= SPACING;
|
||||
}
|
||||
|
||||
position.y += LINE_HEIGHT + SPACING;
|
||||
EditorGUI.PropertyField(position, item.BackgroundRecursive, GUIContent.none);
|
||||
position.x += ICON_WIDTH;
|
||||
EditorGUI.LabelField(position, "Recursive");
|
||||
position.x -= ICON_WIDTH;
|
||||
|
||||
if (EditorGUI.EndChangeCheck()) serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
private static void DrawIconPopupMenu(Rect rect, SerializedProperty property, int iconType)
|
||||
{
|
||||
var menuName = ((HierarchyIcon) iconType).ToString();
|
||||
if (GUI.Button(rect, new GUIContent(menuName), "MiniPopup"))
|
||||
{
|
||||
var screenPoint = GUIUtility.GUIToScreenPoint(rect.position);
|
||||
var window = HierarchyIconsPopup.GetDraggableWindow();
|
||||
window.ShowWithParams(screenPoint, property);
|
||||
}
|
||||
}
|
||||
|
||||
private static void DrawBackgroundPopupMenu(Rect rect, SerializedProperty property, int backgroundType)
|
||||
{
|
||||
var menuName = ((HierarchyBackground) backgroundType).ToString();
|
||||
if (GUI.Button(rect, new GUIContent(menuName), "MiniPopup"))
|
||||
{
|
||||
var screenPoint = GUIUtility.GUIToScreenPoint(rect.position);
|
||||
var window = HierarchyBackgroundsPopup.GetDraggableWindow();
|
||||
window.ShowWithParams(screenPoint, property);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Nested
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private class SerializedItemWrapper
|
||||
{
|
||||
public readonly SerializedProperty Property;
|
||||
|
||||
public readonly SerializedProperty ItemType;
|
||||
public readonly SerializedProperty Name;
|
||||
public readonly SerializedProperty GameObject;
|
||||
|
||||
public readonly SerializedProperty Priority;
|
||||
|
||||
public readonly SerializedProperty IconType;
|
||||
public readonly SerializedProperty IconTexture;
|
||||
public readonly SerializedProperty IconRecursive;
|
||||
|
||||
public readonly SerializedProperty BackgroundType;
|
||||
public readonly SerializedProperty Background;
|
||||
public readonly SerializedProperty BackgroundRecursive;
|
||||
|
||||
public readonly bool HasIcon;
|
||||
public readonly bool HasCustomIcon;
|
||||
public readonly bool HasBackground;
|
||||
public readonly bool HasCustomBackground;
|
||||
|
||||
public SerializedItemWrapper(SerializedProperty property)
|
||||
{
|
||||
Property = property;
|
||||
|
||||
ItemType = property.FindPropertyRelative("Type");
|
||||
Name = property.FindPropertyRelative("Name");
|
||||
GameObject = property.FindPropertyRelative("GameObject");
|
||||
|
||||
Priority = property.FindPropertyRelative("Priority");
|
||||
|
||||
IconType = property.FindPropertyRelative("IconType");
|
||||
IconTexture = property.FindPropertyRelative("IconTexture");
|
||||
IconRecursive = property.FindPropertyRelative("IsIconRecursive");
|
||||
|
||||
BackgroundType = property.FindPropertyRelative("BackgroundType");
|
||||
Background = property.FindPropertyRelative("BackgroundTexture");
|
||||
BackgroundRecursive = property.FindPropertyRelative("IsBackgroundRecursive");
|
||||
|
||||
HasIcon = (IconType.intValue != (int) HierarchyIcon.None);
|
||||
HasCustomIcon = (IconType.intValue == (int) HierarchyIcon.Custom);
|
||||
HasBackground = (BackgroundType.intValue != (int) HierarchyBackground.None);
|
||||
HasCustomBackground = (BackgroundType.intValue == (int) HierarchyBackground.Custom);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 760af7340c7200b489d74bd3240977bf
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Ruleset/HierarchyRuleDrawer.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,23 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[CustomEditor(typeof(HierarchyRuleset), true)]
|
||||
public class HierarchyRulesetEditor : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.HelpBox
|
||||
(
|
||||
"This ruleset created from the older Rainbow Hierarchy version. Do you want to update it now?",
|
||||
MessageType.Warning
|
||||
);
|
||||
|
||||
if (GUILayout.Button("Update Ruleset"))
|
||||
{
|
||||
HierarchyEditorProxy.UpdateOldRuleset?.Invoke(((HierarchyRuleset) target).gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9164b5f0313f1bc4391c5f9ab0cca57d
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Ruleset/HierarchyRulesetEditor.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,394 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.RegularExpressions;
|
||||
using Borodar.RainbowHierarchy.RList;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using static Borodar.RainbowHierarchy.HierarchyRule;
|
||||
using static UnityEngine.SendMessageOptions;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
[CustomEditor(typeof(HierarchyRulesetV2), true)]
|
||||
public class HierarchyRulesetEditorV2 : Editor
|
||||
{
|
||||
private const string SEARCH_RESULTS_TITLE = "Search Results";
|
||||
private const string PROP_NAME_ITEMS = "Rules";
|
||||
private const string NEGATIVE_LOOKAHEAD = "(?!.*)"; // Regex that matches nothing
|
||||
|
||||
private static readonly Dictionary<HierarchyRulesetV2, List<HierarchyRulesetEditorV2>> EDITORS_BY_CONF =
|
||||
new Dictionary<HierarchyRulesetV2, List<HierarchyRulesetEditorV2>>();
|
||||
|
||||
private SerializedProperty _itemsProperty;
|
||||
private ReorderableList _reorderableList;
|
||||
|
||||
private string _query = string.Empty;
|
||||
private Enum _filter = Filter.All;
|
||||
private bool _matchCase;
|
||||
private bool _useRegex;
|
||||
|
||||
private string _warningMessage;
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Properties
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public bool ForceUpdate { get; set; }
|
||||
|
||||
public int SearchTab { get; set; }
|
||||
|
||||
public GameObject GameObject { get; set; }
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Messages
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
protected void OnEnable()
|
||||
{
|
||||
var ruleset = (HierarchyRulesetV2) target;
|
||||
if (EDITORS_BY_CONF.TryGetValue(ruleset, out var editors))
|
||||
{
|
||||
editors.Add(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
var list = new List<HierarchyRulesetEditorV2> {this};
|
||||
EDITORS_BY_CONF.Add(ruleset, list);
|
||||
}
|
||||
|
||||
_itemsProperty = serializedObject.FindProperty(PROP_NAME_ITEMS);
|
||||
|
||||
_reorderableList = new ReorderableList(_itemsProperty)
|
||||
{
|
||||
label = new GUIContent(string.Empty),
|
||||
elementDisplayType = ReorderableList.ElementDisplayType.SingleLine,
|
||||
headerHeight = 0f,
|
||||
expandable = false,
|
||||
paginate = true,
|
||||
pageSize = 10,
|
||||
};
|
||||
|
||||
_reorderableList.onChangedCallback += (list) => OnRulesetChange();
|
||||
|
||||
// ReSharper disable once DelegateSubtraction
|
||||
Undo.undoRedoPerformed -= OnRulesetChange;
|
||||
Undo.undoRedoPerformed += OnRulesetChange;
|
||||
}
|
||||
|
||||
protected void OnDisable()
|
||||
{
|
||||
var ruleset = (HierarchyRulesetV2) target;
|
||||
if (EDITORS_BY_CONF.TryGetValue(ruleset, out var editors))
|
||||
{
|
||||
editors.Remove(this);
|
||||
if (editors.Count == 0) EDITORS_BY_CONF.Remove(ruleset);
|
||||
}
|
||||
|
||||
ClearHiddenFlags();
|
||||
// ReSharper disable once DelegateSubtraction
|
||||
Undo.undoRedoPerformed -= OnRulesetChange;
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
GUILayout.Space(4f);
|
||||
|
||||
var searchTabBefore = SearchTab;
|
||||
SearchTab = GUILayout.Toolbar(SearchTab, new [] {"Filter by object", "Filter by name"});
|
||||
ForceUpdate |= SearchTab != searchTabBefore;
|
||||
|
||||
EditorGUILayout.BeginVertical("AvatarMappingBox");
|
||||
{
|
||||
GUILayout.Space(6f);
|
||||
|
||||
switch (SearchTab)
|
||||
{
|
||||
case 0: // Object
|
||||
{
|
||||
DrawSearchByFolderPanel(ForceUpdate);
|
||||
break;
|
||||
}
|
||||
case 1: // Name
|
||||
{
|
||||
DrawSearchByKeyPanel(ForceUpdate);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(SearchTab), SearchTab, null);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(_warningMessage))
|
||||
{
|
||||
EditorGUILayout.HelpBox(_warningMessage, MessageType.Warning);
|
||||
}
|
||||
|
||||
GUILayout.Space(4f);
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
GUILayout.Space(2f);
|
||||
|
||||
serializedObject.Update();
|
||||
DrawHierarchyList();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static void ShowInspector(HierarchyRulesetV2 ruleset, GameObject currentObject = null)
|
||||
{
|
||||
Selection.activeObject = ruleset;
|
||||
|
||||
// Workaround with double delay to make sure all Inspectors already enabled
|
||||
EditorApplication.delayCall += () => EditorApplication.delayCall += () =>
|
||||
{
|
||||
if (!EDITORS_BY_CONF.TryGetValue(ruleset, out var editors)) return;
|
||||
|
||||
foreach (var editor in editors)
|
||||
{
|
||||
editor.GameObject = currentObject;
|
||||
editor.ForceUpdate = true;
|
||||
editor.SearchTab = 0;
|
||||
editor.Repaint();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Helpers
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private void DrawSearchByFolderPanel(bool forceUpdate)
|
||||
{
|
||||
var assetBefore = GameObject;
|
||||
GameObject = (GameObject) EditorGUILayout.ObjectField(GameObject, typeof(GameObject), true);
|
||||
|
||||
if (!forceUpdate && GameObject == assetBefore) return;
|
||||
|
||||
if (GameObject == null)
|
||||
{
|
||||
ClearHiddenFlags();
|
||||
}
|
||||
else
|
||||
{
|
||||
ApplyHiddenFlagsByAsset();
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawSearchByKeyPanel(bool forceUpdate)
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
var queryChanged = HierarchyEditorUtility.SearchField(ref _query, ref _filter, Filter.All);
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
|
||||
if (!Equals(_filter, Filter.All))
|
||||
{
|
||||
var rect = GUILayoutUtility.GetRect(GUIContent.none, "MiniLabel");
|
||||
rect.x += 2f;
|
||||
rect.y += 1f;
|
||||
rect.width = 55f;
|
||||
GUI.Label(rect, $"➔ {_filter}", "MiniLabel");
|
||||
}
|
||||
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
var matchCaseBefore = _matchCase;
|
||||
_matchCase = EditorGUILayout.ToggleLeft("Match case", _matchCase, "MiniLabel", GUILayout.Width(83f));
|
||||
var matchCaseChanged = _matchCase != matchCaseBefore;
|
||||
|
||||
var useRegexBefore = _useRegex;
|
||||
_useRegex = EditorGUILayout.ToggleLeft("Regex", _useRegex, "MiniLabel", GUILayout.Width(58f));
|
||||
var useRegexChanged = _useRegex != useRegexBefore;
|
||||
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (!forceUpdate && !queryChanged && !matchCaseChanged && !useRegexChanged) return;
|
||||
|
||||
_warningMessage = string.Empty;
|
||||
ApplyFilters();
|
||||
}
|
||||
|
||||
private void ApplyFilters()
|
||||
{
|
||||
var isDefaultFilter = Equals(Filter.All, _filter);
|
||||
if (string.IsNullOrEmpty(_query) && isDefaultFilter)
|
||||
{
|
||||
ClearHiddenFlags();
|
||||
}
|
||||
else
|
||||
{
|
||||
ApplyHiddenFlagsByKey();
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearHiddenFlags()
|
||||
{
|
||||
if (_itemsProperty == null) return;
|
||||
|
||||
for (var i = 0; i < _itemsProperty.arraySize; i++)
|
||||
{
|
||||
var item = _itemsProperty.GetArrayElementAtIndex(i);
|
||||
item.FindPropertyRelative("IsHidden").boolValue = false;
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
_reorderableList.canAdd = true;
|
||||
_reorderableList.headerHeight = 0f;
|
||||
_reorderableList.label.text = string.Empty;
|
||||
_reorderableList.paginate = true;
|
||||
}
|
||||
|
||||
private void ApplyHiddenFlagsByAsset()
|
||||
{
|
||||
foreach (var rule in ((HierarchyRulesetV2) target).Rules)
|
||||
{
|
||||
var match = false;
|
||||
switch (rule.Type)
|
||||
{
|
||||
case KeyType.Object:
|
||||
match |= rule.GameObject == GameObject;
|
||||
match |= rule.IsRecursive() && GameObject.transform.IsChildOf(rule.GameObject.transform);
|
||||
break;
|
||||
case KeyType.Name:
|
||||
match |= rule.Name == GameObject.name;
|
||||
if (rule.IsRecursive())
|
||||
{
|
||||
var parent = GameObject.transform.parent;
|
||||
while (parent != null)
|
||||
{
|
||||
match |= rule.Name == parent.name;
|
||||
if (match) break;
|
||||
parent = parent.parent;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
rule.IsHidden = !match;
|
||||
}
|
||||
|
||||
_reorderableList.canAdd = false;
|
||||
_reorderableList.headerHeight = 18f;
|
||||
_reorderableList.label.text = SEARCH_RESULTS_TITLE;
|
||||
_reorderableList.paginate = false;
|
||||
}
|
||||
|
||||
private void ApplyHiddenFlagsByKey()
|
||||
{
|
||||
var regex = (_useRegex) ? MakeRegexFromQuery() : null;
|
||||
|
||||
for (var i = 0; i < _itemsProperty.arraySize; i++)
|
||||
{
|
||||
var item = _itemsProperty.GetArrayElementAtIndex(i);
|
||||
var isHidden = item.FindPropertyRelative("IsHidden");
|
||||
|
||||
switch (_filter)
|
||||
{
|
||||
case Filter.All:
|
||||
var isObject = KeyHasSameType(item, KeyType.Object);
|
||||
isHidden.boolValue = !NameContainsQuery(item, regex, isObject);
|
||||
break;
|
||||
case Filter.Object:
|
||||
isHidden.boolValue = !KeyHasSameType(item, KeyType.Object) || !NameContainsQuery(item, regex, true);
|
||||
break;
|
||||
case Filter.Name:
|
||||
isHidden.boolValue = !KeyHasSameType(item, KeyType.Name) || !NameContainsQuery(item, regex, false);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(_filter), _filter, null);
|
||||
}
|
||||
}
|
||||
|
||||
_itemsProperty.serializedObject.ApplyModifiedProperties();
|
||||
|
||||
_reorderableList.canAdd = false;
|
||||
_reorderableList.headerHeight = 18f;
|
||||
_reorderableList.label = new GUIContent(SEARCH_RESULTS_TITLE);
|
||||
_reorderableList.paginate = false;
|
||||
}
|
||||
|
||||
private Regex MakeRegexFromQuery()
|
||||
{
|
||||
var options = _matchCase ? RegexOptions.None : RegexOptions.IgnoreCase;
|
||||
|
||||
try
|
||||
{
|
||||
return new Regex(_query, options);
|
||||
}
|
||||
catch (ArgumentException ex)
|
||||
{
|
||||
_warningMessage = ex.Message;
|
||||
return new Regex(NEGATIVE_LOOKAHEAD);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool KeyHasSameType(SerializedProperty item, KeyType keyType)
|
||||
{
|
||||
var propType = item.FindPropertyRelative("Type").enumValueIndex;
|
||||
return propType == (int) keyType;
|
||||
}
|
||||
|
||||
private bool NameContainsQuery(SerializedProperty item, Regex regex, bool isObject)
|
||||
{
|
||||
var key = KeyToString(item, isObject);
|
||||
|
||||
// Regex search
|
||||
if (_useRegex)
|
||||
{
|
||||
var match = regex.Match(key);
|
||||
return match.Success;
|
||||
}
|
||||
|
||||
// Simple search
|
||||
var comparison = _matchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
|
||||
return key.IndexOf(_query, comparison) >= 0;
|
||||
}
|
||||
|
||||
private string KeyToString(SerializedProperty item, bool isObject)
|
||||
{
|
||||
if (isObject)
|
||||
{
|
||||
var reference = item.FindPropertyRelative("GameObject").objectReferenceValue;
|
||||
return reference != null ? reference.name : string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
return item.FindPropertyRelative("Name").stringValue;
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawHierarchyList()
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
|
||||
_reorderableList.DoLayoutList();
|
||||
|
||||
// Track changes in reorderable list
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
OnRulesetChange();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnRulesetChange()
|
||||
{
|
||||
((HierarchyRulesetV2) target).SendMessage("OnRulesetChange", DontRequireReceiver);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Nested
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
private enum Filter
|
||||
{
|
||||
All, Name, Object
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 266803d19a0606046912a8e90cd4d473
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 106670
|
||||
packageName: Rainbow Hierarchy 2
|
||||
packageVersion: 2.6.2
|
||||
assetPath: Assets/Plugins/Borodar/RainbowHierarchy/Scripts/Editor/Ruleset/HierarchyRulesetEditorV2.cs
|
||||
uploadId: 716077
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14bb12a5a0bb93949baf55633fae3d8b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34a68908649d9a3428ce44fa1b31b9a2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using StorageHelper = Borodar.RainbowHierarchy.TexturesStorageHelper<Borodar.RainbowHierarchy.HierarchyBackground>;
|
||||
|
||||
namespace Borodar.RainbowHierarchy
|
||||
{
|
||||
public static class HierarchyBackgroundsStorage
|
||||
{
|
||||
private static readonly Dictionary<HierarchyBackground, Texture2D> BACKGROUND_TEXTURES = new Dictionary<HierarchyBackground, Texture2D>();
|
||||
private static readonly Dictionary<HierarchyBackground, Lazy<string>> BACKGROUND_STRINGS = new Dictionary<HierarchyBackground, Lazy<string>>()
|
||||
{
|
||||
{HierarchyBackground.ClrRed, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAqElEQVQ4EZWRgQ3DIAwEoZNklOy/QydpqjRPZevyhIhEAj7YfzZQ38uyllK+GNuhNT6DEXF5ttcx6av/Jec91b2oAVCaQ66snrMTQIMnMnbSBLBtahq43zQBTHzcgWgzpi6HHbA9dnOn8xU68sDlRU6vMAsJdsuPI3TkyLKVRZonAAo4xLzXvwFQlHRqOr1IXqICHqRxpPMSVZFVZ2AtP47gBsJG1bVff5VFJEHEsuQUAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrVermilion, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApUlEQVQ4EZ1QiRGAMAhr3cJtHMD9F3AM34YzXqCnVr1DUkhCaZ7GfkgpbSWWEuuZZ8nADHDYM25XCvj2EtlQ+w+aRINWmYmUTIM4PZ5V4zANUFR3xU4gBwzJaiC9ZrjTIE78tUKzSO7nVtBbKBa+g+BcK6Dz9QbG5xtEcTxzdFWnAQlvWVczfGegxCdT94hPRPbiCu4RdWok0qDKdytUxLOgQ1DKB60fIWpsPsbCAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrOrange, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAsUlEQVQ4EZWQAQ7DIAwDYb/ob/axvXbP2FqGozpyQ0ArEiK49iW0vl/bs5Ry9P3tez/Pj5yodcPn3ke/ZKtmYteiXglok8BKRqYRALLSZ8BBJ8Bo0k5hIl+amE5AnEBDWscJ/B+oaVUPk3EChCI9A0WP/0SYlR6NGcyezQkQ0JDCsrBrBLhwo7CmBNg4N8Kw2pQEQNAn4J4tfZr5FaCBf2DmJyAGtJOCh5qA4cNEiI3KD5IJJZo84XQDAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrAmber, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAqklEQVQ4EZWRAQ6DMAwD2/1iv+HDe9WesQGrOzkyTisVpFCL2pdE1PfruZVS9lZHq6/Up+lRqed4NBOe+j/ifYa6iuQjAIFZSBHJQwBMSletANXwVAJWAhqmPgnghzsn1okJEEz7DWg+6WUCvxzkcxOugO4rEyi0NyTAu6/AuocAJd/SCvApRiD3TP+CGwnz1eIvpAsm7FRw17MV1KgMbQQdKyDglxqkTuAf96cnzA70DsIAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrYellow, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAsElEQVQ4EY1TCRKDMAiE/sLf9P/f8BmtTYFIu4BkdAa5ls1KRt737UlEH7G32HF6jV9ELDbENDY764Y1/EMa+ozp8rspTxircwJL8vhFnhnZCRSLJBnoXIjR2kACB608ELPFSADNoKYhnHAkaIDLcruD5RQ0ww7wEwATwrzEoCAgm6Qc4jvIjZw3fP9rVGlZ3tVQwaCCO6cWjBNk5px3an5LVOY7Q4WoU1Cklsn5B48vAIEn/yp7a7UAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrLime, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAqUlEQVQ4Ea2Qiw3CMAxEE7Zgmy7cqRgDSsmzuOgS1MpIteT4dz47ruvjvpRS3k1fTbevxX8eKDVht1sLkL1pDe/PRwTZ5hm3i4ANXOZYNc+HLwIAXpwnicAtmCqCCKzqZJYe7jRsQOBNmQ0g7jcgyDaBlQxfUPLM+pbg+gZz4YxEtdjYj6gCNkMYGBF4M37mHmD6DWjKTAXn0m9A0qdmyK79AmyZqT9bfgCtoyjL+TMqmQAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrChartreuse, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArElEQVQ4EZWRgQ3DMAgE7W7RbbpYpu0YSeqCk4+ep64cS8jAw4GTuryfr1LKx2w328hW89Vc9xzq9ocFOA3OnzvVABCEOiaw1H0AQovRAtDFs5Pz7lcAmEz17h6HO5GzuwFAuXvuBECXiwMmAGF5pV3fwLEqxlGDiDcIowb1Kc2AJP5IpCEjQCo8YfrM6zd6g4qyQJcTGBtos8YGS729BgCZNhX2rRmQRkxg2hejsySZiTECtgAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrHarlequin, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVQ4EY1RWxLEIAjDvUSv0+89/F6oT0HTRqRdO0MFAiFo+v6mWUS2bHu2tdpCp/psqNGe7ZN/+A44L2dy2HETjLSLdFU3ged2o2roqxIIFPBgRMEKzAeBBgxGzWEOBAqyAvbDxpqkS3wrizEbwgpKWVlkeJ2eoIgfWUGHNK8QC/2ThYJhyY7vukSVzCTsu54mvFbwDU93wHkbihWUlsFmDAU8yHwQGBsVPrndkBNLLyVSzgXMlAAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrGreen, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVQ4EZWRCxKAIAhEtTN4oO7c8fqYkDQELpPNmAjLAzGXrawppauto62z72TvYFHs1S7tQF99tqk/5wjgb2Y2wjwLcJ0KgMia7oS9stawSwCmM3i04IoArhJCIgDSazDbGmDbG0G0huzpVwg7GFWMfNQBHGKUKLHPDPg+Egl2PQOWoSE6IYJqANIgPxcRAN3HTRhlav8N3vMf/ZzaXywAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrEmerald, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnUlEQVQ4EZ1RQQ6AIAwD3+FjPPltH6aClFgcyBaFZLCwtuvAz9u6OOfOFCHFcccuTuQM1FlDHqa0cUUmxtliohTwBlEtSQEVZBQ8BYa6Q5gCmK2dz2j8lCgAB39dZDwFIDnioPzCCBlNq0f8MsILo43wAqJdWtIp8moEjZSZ2kYHQ2SIUkBrYN3nplKgna9Hlk6BL78AsCz2yL27eAFBSiFE/wbSXQAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrSpringGreen, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAuElEQVQ4EY1QiRHDMAizu0W2yVqdt2PkcQFHOSHXbXNHwFgPuC6v51pKOSxOi/2KjbLXHMB4Ph7286/2dP/1jAvuRw0BBzSgpKZ2woQrBJjsBHZiAe43J0FASSoIkaEPAVZWMZA1D2+ggE9nNUorDON1hcRhjNcVK6gbAalUlJ1DwDxCje6TLfW1bCFwebAV10rCOUxmK/w7QXoDJs0mUExfATN9z8EdhLECK090gsu4qCEwIf1s1zfz0iebR6oUSwAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrAquamarine, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAm0lEQVQ4Ea2QgQ2AIAwEwS3cxnWdyzFUkEdKPgVJjZoUHmmvT/28rYtzLqQ4Upxl32mHlkCO3EGHKS34Ygqf1ctFANZiNOIvCoB/QluBXgAgM501wxmctQBwaC65smgNfnyCTuywbsfiAAWWIg2qM2D7Oml4ZgfDxM4lmtYZfHagG5iB/AQusg60DhEOrEXs9r8ZoDs/gbuwbnIuS1cjyK4dccAAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrCyan, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAtUlEQVQ4EY2RixHEIAhE9bpIN+m/jZRx+RyQwDwxOpcZZHWXFWJdtm0tpZwSh8T+xBdZsYfyzik+P7Lod90p1hqoBVlX3GBU0Ja3O6253KCl+o6c50XWzauBqCj0Ys15hEqDIAUEZrXgzpgGHZmK89b0NBjdykJqDNOAwlE3+Txegc5qlPduzvNuBBfNcu4gXkEJksQ0ZAd6HiPYhso/sJnxJ45upVfWxAgUzfB0hFmhc+zA8A9ikycD6t24QAAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrSkyBlue, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAsElEQVQ4EY2Qiw3DMAhE7W7Rbbpwp+oYbZIa1EPPH5pEQjnguAPX+/P1KKXsLbYWH8S74VWI4/xbI+k7BNqfGOVSkThHApawSYyZGUpg7qwr3MxNJHDVkbzuhNGPTuyxbmJVG5BkmE5jr8slQGUjjHk39EuMc0hgRTirdSdYQtfsBNanDdg8c49+dgK3CfKwpdczAQ5l2DfOBC6fIwF/EFjFCX+UnCMBmyU3cChBnfALCzcmyTdoAdUAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrAzure, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVQ4EaWRgRGDMAhFk27RbVys03aMVi2QEl+ISb2rdyjC5/E1+f54LimlVWKTeCNekp8FNdtNRHplid2y+U11flnuAC2y6aLZUxfuDriyPcI6BxRcAZrGHegwh0af02kIoIMjH6HKwkzAuZQ7D2zNHBCHf4zV+b9OwSh0wK3RUV0ZEwdonUOExZnmnYCm0b0QX5paaU5hvrV0idFK/Ynqn83OwLfAJa0DdtTaiIC6OfgAbicnnDm2y8cAAAAASUVORK5CYII=")},
|
||||
{HierarchyBackground.ClrCerulean, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAr0lEQVQ4EY2SgRHCMAwDE7ZgGwZg/wUYA0qJfHXu42Jw79w6liLZTfr1/ri11rYR7xEvxHPk34Kc7TJIevqI3bLfL/H8Ud5dQEWCTvr33V2g4h7FbI8LVEeIIs0FBFRGYKfGpwDBk9NRoMkyghYEM4FoMk+hslmi5FnOETJX1tnBaQQSs5wdiDPvQQQyAXZgHB8hAnGdCS73ICUBYKfKl1Mou0Jw/gPVqA7OkkaT/gE58CRsKSA1HwAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrBlue, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArElEQVQ4EZWQAQ6AIAhFtdt0i+5/ku5QaUDSPojL2lj4+TzQvK77llK6KArFCXFQHgV6ykKm6KuRGGkKyFEx0LyvKoAmmqHeGLAeSQHUkJGAOTajLkMUwKbpqUDMCEA6eEzqh7xvwC4sYo6EbsjfDRAmuQKALCmcux4jKIDFtrb8RlfwunlEQ5448JbvIzJ5eu0Gl230Ctzs12u+4U96FDB0fRTMFT68XVk2vgEQ1iRfQ76zdwAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrIndigo, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAq0lEQVQ4EY2S0Q2EMAxDWyZhlNvh9v9mCEAcDkr1GgoXpEKIHcdG1O+8fEopO8521jrr4HjfOft0knTV6/H3fkSGC9yASBy8a2l1AeEZF5FzUGCw5LUl152DTIzIaQ4sz+u+C2QEm2EEqrOmLvuqmwMCGuAmCrDfOSDAgVhzkdWMkBEhR3WLEDc9vdOBcdzBDXhSQF8z7T8wOwAzZRfB1BJT/AadgzibiWRiP5amKH4XBiZzAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrViolet, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArklEQVQ4EZWSAQ7DIAhFdXfZPXq5nXWH2FonzJ88xSWsCQXh+0Db+rg/j1LK2e3q9h72grdYZnXVbM956y976tf99W6mFsAXie1BJ0Bir0s4qccCsGDKda0GnGA6ggTyFCq3800T7Iq7XJiMgEzXoCGAHUOnUWTe4koAi6HTADDvMQGZCVbNdImkU/grNv10BArTMB3BaSDwPpAOP9h0BAozE0xfYe24rgUn2OL2AUS9JrOiCXynAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrPurple, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArElEQVQ4EY2Qiw3DMAhE7Y6UCbp0huoM+Tg+5ItOJqRYIoA5Hjh1XX7fUsrZbe92DL+JR6wGHe389ASndasW5T+mJwAJIDwRTO9NTwAatUjQX0+ATkfTnBPk7gmYn8CGN289BECYeYLTEIDVdD0nHKuoxmICoobRF7pKABQK0UlhNwoKeBVGRQKyE3VLMBsBKGQgTkMACkrXGJOeDjT3T8xu4EDcwBWCi3mzdgHb3ST1vqEGMwAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrMagenta, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAuElEQVQ4EZWSgRHDIAhFsSt1ge4/RBZpGwso6ZNorvUO/crnBXOW7b49ROStsWu8ejyxmo6wfORM7zedbBSN6qpNtp8NeixfA5ATs2I7y+ASgFzwK1AIIJ2acILNc1yBpitNsMOiA6ddVa5yAWBrK6+dn3wBYGtTY6dmH39iZZK61/rCDtwTHWh2qKGxAYb0FwbA+X6tss8NSUzuYLCvNuzMNTtgEb/Ec2rzHE+ZZJqyzuC/X2IGygdrCCcSvgMbtAAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrFuchsia, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAArklEQVQ4EZ2QARLDIAgEtS/Li/OrvqJJU4/MMSeUpFNnkBNhEftzWZfW2j7sPWwTew39zZiDmu0xNqx+Ot8PV7OIeZ2AOS0D4z3PRwVgwq2vANUIGjddAarO+gfQ0x8oXRMrGOL+B1p8VZDuOII9J93mgDaCLkfIpWckjcYXKBmp8UxgjOMPPKZ01SyG17jpATCPzUlBo5Ar5XAEJCidBbeeACX/CuMI1uSf7tb0A2xIJvWEOFUAAAAAAElFTkSuQmCC")},
|
||||
{HierarchyBackground.ClrRose, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAuElEQVQ4EZWRAQ7CMAwDW37DL/gW7+UZMEYd5s5yGgkqZXNS55Jp/XG931pr24j3iJfEc2gP3KNG33YZCU4fsYf6ZqeexSTQ0wiAjgLEQJ06CvWDAJ/o+YoATyfAJ3q+AsCzE+CGaoNUrwDVBqleAdKkY0WthyZAL/xzNNcNQhOA5BeIeqDnX8AUpSNfneThBm5OxsOgG8TWBOgFvJ77gJkT4E3VBrORggA0aFO1gXqCQQCB/7xjyAdN/ienW2LnbwAAAABJRU5ErkJggg==")},
|
||||
{HierarchyBackground.ClrCrimson, new Lazy<string>(()=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVQ4EYWS0Q3DIAxEIat0kf53/w26RZNQ2+iiM+6lkQzHYT8wSn8/Xs/W2mFxWuwUH9O/Ajles282+NfndI3jUlmseR2AnFaB6z7WQwGQ8HdWANUC+6EVQJ3Mb+A6vQHTOVHB3Lc3mKlcfFdQ9rY2S+M6ZbcafJBr2UItnU5pDY/IZE9d1wCufvoPmM4axT6zHxo38AXTWTOA/dAAOJvpXHSrARjp/HxVBSgtqETlRwtfnlAndOonlR0AAAAASUVORK5CYII=")},
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Public
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
public static Texture2D GetBackground(int type)
|
||||
{
|
||||
return GetBackground((HierarchyBackground) type);
|
||||
}
|
||||
|
||||
public static Texture2D GetBackground(HierarchyBackground type)
|
||||
{
|
||||
return StorageHelper.GetTexture(type, FilterMode.Bilinear, BACKGROUND_STRINGS, BACKGROUND_TEXTURES);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user