set up addressable geo tile streaming for quest

- add addressables settings/groups for tile prefabs with custom TileBuildPath/TileLoadPath profiles and link.xml preservation
- add editor tools for building tile addressables, configuring openxr quest loaders, removing missing scripts, and forcing android tool paths
- add runtime loader + manifest model to stream tile bundles from persistent data with radius-based load/unload
- add TestArea1 scene wired to GeoTileAddressablesLoader and update build settings to enable it
- update geo tile prefab importer output path to Assets/TilePrefabs
- update project/xr/android settings: min sdk 34, app id, openxr composition layers + quest devices, scripting define symbols, and renderer tweaks
- update packages (addressables 2.8, ar foundation 6.3.2, composition layers 2.3, collab proxy 2.11.2) and record scriptable build pipeline config
- remove temporary recovery scene files and add Notes plan/progress docs
This commit is contained in:
2026-01-22 01:12:59 +01:00
parent 0ae28bf32d
commit bd1e6f4f4d
63 changed files with 2738 additions and 117 deletions

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 96c9a6467fc5e1ac4aba80e2ce5979f7
guid: 97e508d3011a626539889fd77b226bed
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,127 @@
%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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetSettings
m_DefaultGroup: 7d009aae9166b06d4bb3f7df656399e5
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_AllowNestedBundleFolders: 0
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: 888e852cf5299d044b396c8c5d1be8ca
m_RemoteCatalogLoadPath:
m_Id:
m_ContentStateBuildPathProfileVariableName:
m_CustomContentStateBuildPath:
m_ContentStateBuildPath:
m_BuildAddressablesWithPlayerBuild: 0
m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]'
m_GroupAssets:
- {fileID: 11400000, guid: eb885766d81094dcdb6a7c50c5e7532d, type: 2}
- {fileID: 11400000, guid: 3b790afb05c70ebd99cdb8abeb47539a, type: 2}
m_BuildSettings:
m_LogResourceManagerExceptions: 1
m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles
m_ProfileSettings:
m_Profiles:
- m_InheritedParent:
m_Id: b1a62d6d4d5d7588981fb83d2d2275bb
m_ProfileName: Default
m_Values:
- m_Id: 115009ef2669f58c99530d4432ec3964
m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
- m_Id: 23665568df98c46eeaee2ef9ea7611fe
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
- m_Id: 334365b7569c7a681827d1a99c166327
m_Value: 'file://{UnityEngine.Application.persistentDataPath}/TileBundles/[BuildTarget]'
- m_Id: 3dbec98a2ceea7a2db5e98358038bd43
m_Value: 'ServerData/TileBundles/[BuildTarget]'
- m_Id: 4601799a36420552e8e41f9dc7c48200
m_Value: <undefined>
- m_Id: 888e852cf5299d044b396c8c5d1be8ca
m_Value: 'ServerData/[BuildTarget]'
- m_Id: d63f558338e9d8c06bc1639c5e13c011
m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
m_ProfileEntryNames:
- m_Id: 115009ef2669f58c99530d4432ec3964
m_Name: BuildTarget
m_InlineUsage: 0
- m_Id: 23665568df98c46eeaee2ef9ea7611fe
m_Name: Local.LoadPath
m_InlineUsage: 0
- m_Id: 334365b7569c7a681827d1a99c166327
m_Name: TileLoadPath
m_InlineUsage: 0
- m_Id: 3dbec98a2ceea7a2db5e98358038bd43
m_Name: TileBuildPath
m_InlineUsage: 0
- m_Id: 4601799a36420552e8e41f9dc7c48200
m_Name: Remote.LoadPath
m_InlineUsage: 0
- m_Id: 888e852cf5299d044b396c8c5d1be8ca
m_Name: Remote.BuildPath
m_InlineUsage: 0
- m_Id: d63f558338e9d8c06bc1639c5e13c011
m_Name: Local.BuildPath
m_InlineUsage: 0
m_ProfileVersion: 1
m_LabelTable:
m_LabelNames:
- default
- tile
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: c4a8deec2ab9384549cd426efaada416, type: 2}
m_InitializationObjects: []
m_CertificateHandlerType:
m_AssemblyName:
m_ClassName:
m_ActivePlayerDataBuilderIndex: 2
m_DataBuilders:
- {fileID: 11400000, guid: e01bbc93bbdb8233bbe8a7c538287186, type: 2}
- {fileID: 11400000, guid: f06203e8d884c685b9534ff62efdef16, type: 2}
- {fileID: 11400000, guid: ed82faea465c4d8619db6a11915bcefd, type: 2}
m_ActiveProfileId: b1a62d6d4d5d7588981fb83d2d2275bb

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,79 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7218615692470976775
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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 0}
m_StaticContent: 0
--- !u!114 &-4894121034991328133
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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
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_StripDownloadOptions: 0
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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroupTemplate
m_SchemaObjects:
- {fileID: -4894121034991328133}
- {fileID: -7218615692470976775}
m_Description: Pack assets into asset bundles.
m_Settings: {fileID: 11400000, guid: 4eb033ed8ed578ab8ac6b6833ffcb57b, type: 2}

View File

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

View File

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

View File

@@ -0,0 +1,23 @@
%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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
m_GroupName: Default Local Group
m_GUID: 7d009aae9166b06d4bb3f7df656399e5
m_SerializeEntries: []
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 4eb033ed8ed578ab8ac6b6833ffcb57b, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: c761f75ec4f110416a9ad0692cd83f50, type: 2}
- {fileID: 11400000, guid: 9a4e8f2c7fe52e400a4e0d21f4484b8c, type: 2}

View File

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

View File

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

View File

@@ -0,0 +1,48 @@
%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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
m_Group: {fileID: 11400000, guid: 3b790afb05c70ebd99cdb8abeb47539a, 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_StripDownloadOptions: 0
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: d63f558338e9d8c06bc1639c5e13c011
m_LoadPath:
m_Id: 23665568df98c46eeaee2ef9ea7611fe
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

View File

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

View File

@@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Default Local Group_ContentUpdateGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 11400000, guid: 3b790afb05c70ebd99cdb8abeb47539a, type: 2}
m_StaticContent: 0

View File

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

View File

@@ -0,0 +1,48 @@
%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: TilePrefabs_BundledAssetGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.BundledAssetGroupSchema
m_Group: {fileID: 11400000, guid: eb885766d81094dcdb6a7c50c5e7532d, 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_StripDownloadOptions: 0
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: 3dbec98a2ceea7a2db5e98358038bd43
m_LoadPath:
m_Id: 334365b7569c7a681827d1a99c166327
m_BundleMode: 1
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

View File

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

View File

@@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: TilePrefabs_ContentUpdateGroupSchema
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.GroupSchemas.ContentUpdateGroupSchema
m_Group: {fileID: 11400000, guid: eb885766d81094dcdb6a7c50c5e7532d, type: 2}
m_StaticContent: 1

View File

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

View File

@@ -0,0 +1,83 @@
%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: TilePrefabs
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.AddressableAssetGroup
m_GroupName: TilePrefabs
m_GUID: 0143b08b59e2f5005abd1a17174c850b
m_SerializeEntries:
- m_GUID: 10548af33d6eab29e91460fcb5a47bc9
m_Address: dgm1_32_329_5513
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 221845424a0627585a042169b8df27b6
m_Address: dgm1_32_329_5514
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3ca5b3ef51788f74dafc21eeeff0189a
m_Address: dgm1_32_329_5512
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 42b9e141653a4a0198d3df1c0ea172cb
m_Address: dgm1_32_328_5514
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8666356c8b6178d04880ce826eabca18
m_Address: dgm1_32_328_5513
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9c55af37b565bfbd9aad17808d49b382
m_Address: dgm1_32_328_5515
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b024e491987c828a88e6715c1ed676e8
m_Address: dgm1_32_328_5512
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d53c185e3cdc47044a80f56a635b9076
m_Address: dgm1_32_328_5511
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e1871c8e47d3d74ca8ddd86b1d36825b
m_Address: dgm1_32_329_5515
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e88a6070a6dbdaa549cb8a95d58a3838
m_Address: dgm1_32_329_5511
m_ReadOnly: 0
m_SerializedLabels:
- tile
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 4eb033ed8ed578ab8ac6b6833ffcb57b, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: d49fd7bfa51b836edbb29b9f35a7b0be, type: 2}
- {fileID: 11400000, guid: 2e0b4df8528236e509012ffd7763b4bb, type: 2}

View File

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

View File

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

View File

@@ -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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptFastMode
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

View File

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

View File

@@ -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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode
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

View File

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

View File

@@ -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: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedPlayMode
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

View File

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

View File

@@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a189bb168d8d90478a09ea08c2f3d72, type: 3}
m_Name: DefaultObject
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.AddressableAssetSettingsDefaultObject
m_AddressableAssetSettingsGuid: 4eb033ed8ed578ab8ac6b6833ffcb57b

View File

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

View File

@@ -0,0 +1,28 @@
%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: 7e3976da977cb49238499ea3b4c237ae, type: 3}
m_Name: ProfileDataSourceSettings
m_EditorClassIdentifier: Unity.Addressables.Editor::UnityEditor.AddressableAssets.Settings.ProfileDataSourceSettings
profileGroupTypes:
- m_GroupTypePrefix: Built-In
m_Variables:
- m_Suffix: BuildPath
m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
- m_Suffix: LoadPath
m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
environments: []
currentEnvironment:
id:
projectId:
projectGenesisId:
name:
isDefault: 0

View File

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

8
Assets/Editor.meta Normal file
View File

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

View File

@@ -0,0 +1,25 @@
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
public class ForceAndroidPreferences
{
static ForceAndroidPreferences()
{
// Force JDK path
EditorPrefs.SetString("JdkPath", "/usr/lib/jvm/java-17-openjdk");
// Force SDK path
EditorPrefs.SetString("AndroidSdkRoot", "/opt/android-sdk");
// Force NDK path
EditorPrefs.SetString("AndroidNdkRoot", "/opt/android-sdk/ndk/27.2.12479018");
// Disable "use Unity embedded" flags
EditorPrefs.SetBool("AndroidSdkUseEmbedded", false);
EditorPrefs.SetBool("AndroidNdkUseEmbedded", false);
EditorPrefs.SetBool("JdkUseEmbedded", false);
Debug.Log("[ForceAndroidPreferences] Android tools paths set on startup");
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bf47e9cd5bbd7f43cbe52336a00e8e81

View File

@@ -34,10 +34,10 @@ public class AndroidBuildSettings : IPreprocessBuildWithReport
/// </summary>
private static void SetAndroidBuildSettings()
{
if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel24)
if (PlayerSettings.Android.minSdkVersion < AndroidSdkVersions.AndroidApiLevel34)
{
PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel24;
Debug.Log("Android minimum SDK version has been updated to Level 24. The lowest level supported by the composition layers package.");
PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel34;
Debug.Log("Android minimum SDK version has been updated to Level 34.");
}
}
}

View File

@@ -0,0 +1,882 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &592258981
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 592258982}
m_Layer: 0
m_Name: GeoTileContainer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &592258982
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 592258981}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.78763, y: -0, z: 5.58919}
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 &1592246342 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 742272467831425975, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 760ff70c1c91bdd45907d0ff0cdcaf7f, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1592246343 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4083252680172266230, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1592246344 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6480925242510836759, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 75b29b6c6428c984a8a73ffc2d58063b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1592246345 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7347985736721345035, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e9f365cf844c03449bc8973eead2c3c1, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1889629915 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1767192433, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2102994769
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2102994771}
- component: {fileID: 2102994770}
m_Layer: 0
m_Name: GeoTileLoader
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2102994770
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2102994769}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 14a2150bfb293bd30a7128844a9755da, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::GeoTileAddressablesLoader
player: {fileID: 9014170783777442264}
tilesParent: {fileID: 592258982}
tileBundleFolderName: TileBundles
manifestFileName: TileManifest.json
buildTargetFolderOverride:
loadRadiusMeters: 1500
unloadRadiusMeters: 2000
updateInterval: 0.5
maxConcurrentLoads: 2
--- !u!4 &2102994771
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2102994769}
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!1001 &2181405618988545911
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 9014170783777442264}
m_Modifications:
- target: {fileID: 8429981633443581377, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_Name
value: TunnelingVignette
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.size
value: 8
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_LocomotionProvider
value:
objectReference: {fileID: 1592246345}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_LocomotionProvider
value:
objectReference: {fileID: 1592246344}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_LocomotionProvider
value:
objectReference: {fileID: 9014170783777442268}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_LocomotionProvider
value:
objectReference: {fileID: 9014170783777442267}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_LocomotionProvider
value:
objectReference: {fileID: 1592246343}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_LocomotionProvider
value:
objectReference: {fileID: 1592246342}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_LocomotionProvider
value:
objectReference: {fileID: 9014170783777442266}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_LocomotionProvider
value:
objectReference: {fileID: 9014170783777442265}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseInTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_EaseOutTime
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_ApertureSize
value: 0.7
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColor.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_FeatheringEffect
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[0].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[1].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[2].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[3].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[4].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[5].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[6].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8429981633443581383, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
propertyPath: m_LocomotionVignetteProviders.Array.data[7].m_OverrideParameters.m_VignetteColorBlend.a
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
--- !u!4 &2181405618988545912 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8429981633443581382, guid: 6c8af5c8012f01440af6cb2bc3eb987c, type: 3}
m_PrefabInstance: {fileID: 2181405618988545911}
m_PrefabAsset: {fileID: 0}
--- !u!114 &3127728407676174906
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3127728407676174909}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3}
m_Name:
m_EditorClassIdentifier:
m_StartingHoverFilters: []
m_StartingSelectFilters: []
--- !u!4 &3127728407676174907
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3127728407676174909}
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!1 &3127728407676174909
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3127728407676174907}
- component: {fileID: 3127728407676174906}
m_Layer: 0
m_Name: XR Interaction Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &3127728408198131880
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3127728408198131895}
- component: {fileID: 3127728408198131894}
- component: {fileID: 3127728408198131892}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &3127728408198131892
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3127728408198131880}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SendPointerHoverToParent: 1
m_ClickSpeed: 0.3
m_MoveDeadzone: 0.6
m_RepeatDelay: 0.5
m_RepeatRate: 0.1
m_TrackedDeviceDragThresholdMultiplier: 2
m_TrackedScrollDeltaMultiplier: 5
m_BypassUIToolkitEvents: 0
m_ActiveInputMode: 1
m_EnableXRInput: 1
m_EnableMouseInput: 1
m_EnableTouchInput: 1
m_EnableGamepadInput: 1
m_EnableJoystickInput: 1
m_PointAction: {fileID: 2869410428622933342, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_LeftClickAction: {fileID: 1855836014308820768, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_MiddleClickAction: {fileID: -6289560987278519447, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_RightClickAction: {fileID: -2562941478296515153, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_ScrollWheelAction: {fileID: 5825226938762934180, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_NavigateAction: {fileID: -7967456002180160679, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_SubmitAction: {fileID: 3994978066732806534, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_CancelAction: {fileID: 2387711382375263438, guid: c348712bda248c246b8c49b3db54643f, type: 3}
m_EnableBuiltinActionsAsFallback: 1
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
--- !u!114 &3127728408198131894
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3127728408198131880}
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 &3127728408198131895
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3127728408198131880}
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!1001 &9014170783777442263
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1717954561962503725, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_Name
value: XR Origin (XR Rig)
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.x
value: 1000
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.y
value: 1000
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalPosition.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 1717954561962503726, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 2181405618988545912}
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 1767192433, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
insertIndex: -1
addedObject: {fileID: 9014170783777442269}
m_SourcePrefab: {fileID: 100100000, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
--- !u!4 &9014170783777442264 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1767192434, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
--- !u!114 &9014170783777442265 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5739245880472075158, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 496880615cd240be960d436c1c8ae570, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9014170783777442266 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1748222016861356527, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9014170783777442267 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2032798983271290625, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b94c4c83dec6a94fbaebf543478259e, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9014170783777442268 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 153982007679157697, guid: f6336ac4ac8b4d34bc5072418cdc62a0, type: 3}
m_PrefabInstance: {fileID: 9014170783777442263}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b1e8c997df241c1a67045eeac79b41b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &9014170783777442269
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1889629915}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
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: 0
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_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 9014170783777442263}
- {fileID: 3127728407676174907}
- {fileID: 3127728408198131895}
- {fileID: 2102994771}
- {fileID: 592258982}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3a7ce2f4553dfe7778507dc14cbcc2fd
guid: 798ff6a8bc8cc60d69669ccee591d0fa
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -0,0 +1,313 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using UnityEditor;
using UnityEditor.AddressableAssets;
using UnityEditor.AddressableAssets.Settings;
using UnityEditor.AddressableAssets.Settings.GroupSchemas;
using UnityEngine;
public static class GeoTileAddressablesBuilder
{
private const string TilePrefabsDir = "Assets/TilePrefabs";
private const string TileIndexCsvPath = "Assets/GeoData/tile_index.csv";
private const string GroupName = "TilePrefabs";
private const string TileLabel = "tile";
private const string ManifestFileName = "TileManifest.json";
private const float TileSizeMeters = 1000f;
private const string BuildPathVariable = "TileBuildPath";
private const string LoadPathVariable = "TileLoadPath";
private const string BuildPathValue = "ServerData/TileBundles/[BuildTarget]";
private const string LoadPathValue = "file://{UnityEngine.Application.persistentDataPath}/TileBundles/[BuildTarget]";
[MenuItem("Tools/Geo Tiles/Build Tile Addressables (Android)")]
public static void BuildAndroid()
{
BuildForTarget(BuildTarget.Android, BuildTargetGroup.Android);
}
private static void BuildForTarget(BuildTarget target, BuildTargetGroup group)
{
if (!Directory.Exists(TilePrefabsDir))
{
Debug.LogError($"[GeoTileAddressablesBuilder] Prefab directory missing: {TilePrefabsDir}");
return;
}
if (!File.Exists(TileIndexCsvPath))
{
Debug.LogError($"[GeoTileAddressablesBuilder] CSV missing: {TileIndexCsvPath}");
return;
}
var settings = AddressableAssetSettingsDefaultObject.GetSettings(true);
if (settings == null)
{
Debug.LogError("[GeoTileAddressablesBuilder] Addressables settings not found.");
return;
}
EnsureProfileVariable(settings, BuildPathVariable, BuildPathValue);
EnsureProfileVariable(settings, LoadPathVariable, LoadPathValue);
EnsureRemoteCatalogPaths(settings);
var groupAsset = GetOrCreateGroup(settings);
ConfigureGroup(settings, groupAsset);
AssignPrefabs(settings, groupAsset);
settings.SetDirty(AddressableAssetSettings.ModificationEvent.BatchModification, null, true);
AssetDatabase.SaveAssets();
var previousTarget = EditorUserBuildSettings.activeBuildTarget;
if (previousTarget != target)
{
if (!EditorUserBuildSettings.SwitchActiveBuildTarget(group, target))
{
Debug.LogError($"[GeoTileAddressablesBuilder] Failed to switch build target to {target}.");
return;
}
}
AddressableAssetSettings.BuildPlayerContent();
var outputPath = GetRemoteCatalogBuildPath(settings, target);
if (!Directory.Exists(outputPath))
{
Debug.LogError($"[GeoTileAddressablesBuilder] Build output not found: {outputPath}");
return;
}
var (catalogFile, catalogHashFile) = FindCatalogFiles(outputPath);
if (string.IsNullOrEmpty(catalogFile))
{
Debug.LogError($"[GeoTileAddressablesBuilder] Catalog file not found in: {outputPath}");
return;
}
var manifest = BuildManifest(target.ToString(), catalogFile, catalogHashFile);
var manifestPath = Path.Combine(outputPath, ManifestFileName);
File.WriteAllText(manifestPath, JsonUtility.ToJson(manifest, true));
AssetDatabase.Refresh();
Debug.Log($"[GeoTileAddressablesBuilder] DONE. Output={outputPath}");
}
private static void AssignPrefabs(AddressableAssetSettings settings, AddressableAssetGroup group)
{
var prefabGuids = AssetDatabase.FindAssets("t:Prefab", new[] { TilePrefabsDir });
foreach (var guid in prefabGuids)
{
var path = AssetDatabase.GUIDToAssetPath(guid).Replace("\\", "/");
var parentDir = Path.GetDirectoryName(path)?.Replace("\\", "/");
if (!string.Equals(parentDir, TilePrefabsDir, StringComparison.OrdinalIgnoreCase))
continue;
var entry = settings.CreateOrMoveEntry(guid, group, false, false);
entry.address = Path.GetFileNameWithoutExtension(path);
entry.SetLabel(TileLabel, true, true);
}
}
private static AddressableAssetGroup GetOrCreateGroup(AddressableAssetSettings settings)
{
var group = settings.FindGroup(GroupName);
if (group != null)
return group;
group = settings.CreateGroup(GroupName, false, false, false, new List<AddressableAssetGroupSchema>());
group.AddSchema<BundledAssetGroupSchema>();
group.AddSchema<ContentUpdateGroupSchema>();
return group;
}
private static void ConfigureGroup(AddressableAssetSettings settings, AddressableAssetGroup group)
{
var bundleSchema = group.GetSchema<BundledAssetGroupSchema>();
if (bundleSchema == null)
bundleSchema = group.AddSchema<BundledAssetGroupSchema>();
bundleSchema.BundleMode = BundledAssetGroupSchema.BundlePackingMode.PackSeparately;
bundleSchema.BuildPath.SetVariableByName(settings, BuildPathVariable);
bundleSchema.LoadPath.SetVariableByName(settings, LoadPathVariable);
var updateSchema = group.GetSchema<ContentUpdateGroupSchema>();
if (updateSchema != null)
updateSchema.StaticContent = true;
}
private static void EnsureProfileVariable(AddressableAssetSettings settings, string name, string value)
{
var profileId = settings.activeProfileId;
var current = settings.profileSettings.GetValueByName(profileId, name);
if (string.IsNullOrEmpty(current))
settings.profileSettings.CreateValue(name, value);
settings.profileSettings.SetValue(profileId, name, value);
}
private static void EnsureRemoteCatalogPaths(AddressableAssetSettings settings)
{
settings.BuildRemoteCatalog = true;
settings.RemoteCatalogBuildPath.SetVariableByName(settings, BuildPathVariable);
settings.RemoteCatalogLoadPath.SetVariableByName(settings, LoadPathVariable);
}
private static (string catalogFile, string catalogHashFile) FindCatalogFiles(string outputPath)
{
var catalogFiles = Directory.GetFiles(outputPath, "*catalog*.json");
if (catalogFiles.Length == 0)
catalogFiles = Directory.GetFiles(outputPath, "*catalog*.bin");
var catalogFile = catalogFiles.Length > 0 ? Path.GetFileName(catalogFiles[0]) : null;
string catalogHash = null;
if (!string.IsNullOrEmpty(catalogFile))
{
var baseName = Path.GetFileNameWithoutExtension(catalogFile);
var hashCandidate = Path.Combine(outputPath, $"{baseName}.hash");
if (File.Exists(hashCandidate))
{
catalogHash = Path.GetFileName(hashCandidate);
}
else
{
var hashFiles = Directory.GetFiles(outputPath, "*catalog*.hash");
if (hashFiles.Length > 0)
catalogHash = Path.GetFileName(hashFiles[0]);
}
}
return (catalogFile, catalogHash);
}
private static TileManifest BuildManifest(string buildTarget, string catalogFile, string catalogHashFile)
{
var tiles = ParseTilesCsv();
if (tiles.Count == 0)
throw new InvalidOperationException("No tiles parsed from tile_index.csv");
double minX = double.PositiveInfinity;
double minY = double.PositiveInfinity;
foreach (var tile in tiles)
{
minX = Math.Min(minX, tile.Xmin);
minY = Math.Min(minY, tile.Ymin);
}
var entries = new TileEntry[tiles.Count];
for (int i = 0; i < tiles.Count; i++)
{
var tile = tiles[i];
entries[i] = new TileEntry
{
tileId = tile.TileId,
offsetX = (float)(tile.Xmin - minX),
offsetZ = (float)(tile.Ymin - minY),
baseY = (float)tile.GlobalMin
};
}
return new TileManifest
{
buildTarget = buildTarget,
catalogFile = catalogFile,
catalogHashFile = catalogHashFile,
tileSizeMeters = TileSizeMeters,
tiles = entries
};
}
private static string GetRemoteCatalogBuildPath(AddressableAssetSettings settings, BuildTarget target)
{
var rawPath = settings.RemoteCatalogBuildPath.GetValue(settings);
if (string.IsNullOrWhiteSpace(rawPath))
rawPath = BuildPathValue.Replace("[BuildTarget]", target.ToString());
return Path.GetFullPath(rawPath.Replace("[BuildTarget]", target.ToString()));
}
private struct TileRecord
{
public string TileId;
public double Xmin;
public double Ymin;
public double GlobalMin;
public double GlobalMax;
}
private static List<TileRecord> ParseTilesCsv()
{
var tiles = new List<TileRecord>();
var ci = CultureInfo.InvariantCulture;
var lines = File.ReadAllLines(TileIndexCsvPath);
if (lines.Length < 2)
return tiles;
var headerMap = BuildHeaderMap(lines[0]);
string[] required = { "tile_id", "xmin", "ymin", "global_min", "global_max" };
if (!HasAll(headerMap, required))
{
Debug.LogError("[GeoTileAddressablesBuilder] CSV missing required columns.");
return tiles;
}
int IDX_TILE = headerMap["tile_id"];
int IDX_XMIN = headerMap["xmin"];
int IDX_YMIN = headerMap["ymin"];
int IDX_GMIN = headerMap["global_min"];
int IDX_GMAX = headerMap["global_max"];
for (int i = 1; i < lines.Length; i++)
{
var line = lines[i].Trim();
if (string.IsNullOrWhiteSpace(line))
continue;
var parts = line.Split(',');
int maxIdx = Math.Max(IDX_TILE, Math.Max(IDX_XMIN, Math.Max(IDX_YMIN, Math.Max(IDX_GMIN, IDX_GMAX))));
if (parts.Length <= maxIdx)
continue;
try
{
tiles.Add(new TileRecord
{
TileId = parts[IDX_TILE].Trim(),
Xmin = double.Parse(parts[IDX_XMIN], ci),
Ymin = double.Parse(parts[IDX_YMIN], ci),
GlobalMin = double.Parse(parts[IDX_GMIN], ci),
GlobalMax = double.Parse(parts[IDX_GMAX], ci)
});
}
catch (Exception e)
{
Debug.LogWarning($"[GeoTileAddressablesBuilder] Parse error line {i + 1}: {e.Message}");
}
}
return tiles;
}
private static Dictionary<string, int> BuildHeaderMap(string headerLine)
{
var map = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
var headers = headerLine.Split(',');
for (int i = 0; i < headers.Length; i++)
map[headers[i].Trim()] = i;
return map;
}
private static bool HasAll(Dictionary<string, int> map, string[] keys)
{
foreach (var key in keys)
{
if (!map.ContainsKey(key))
return false;
}
return true;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6cd42659539662ebfaeb5b8d10d5ad73

View File

@@ -21,7 +21,7 @@ public class GeoTilePrefabImporter : EditorWindow
private string enhancedTreesDir = "Assets/GeoData/trees_enhanced";
// Output settings
private string prefabOutputDir = "Assets/GeoData/TilePrefabs";
private string prefabOutputDir = "Assets/TilePrefabs";
private bool overwriteExisting = false;
// Terrain settings

View File

@@ -0,0 +1,138 @@
#if UNITY_EDITOR
using System.Collections.Generic;
using System.Text;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
public static class MissingScriptUtility
{
[MenuItem("Tools/Diagnostics/Find Missing Scripts in Open Scenes")]
public static void FindMissingScriptsInOpenScenes()
{
int missingCount = 0;
var reported = new HashSet<GameObject>();
foreach (var scene in GetLoadedScenes())
{
foreach (var root in scene.GetRootGameObjects())
ScanHierarchy(root, ref missingCount, reported);
}
Debug.Log($"[MissingScriptUtility] Missing scripts found: {missingCount}");
}
[MenuItem("Tools/Diagnostics/Find Missing Scripts in Prefabs")]
public static void FindMissingScriptsInPrefabs()
{
var prefabGuids = AssetDatabase.FindAssets("t:Prefab");
int missingCount = 0;
for (int i = 0; i < prefabGuids.Length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(prefabGuids[i]);
EditorUtility.DisplayProgressBar("Scanning Prefabs", path, (float)i / prefabGuids.Length);
var root = PrefabUtility.LoadPrefabContents(path);
if (root == null)
continue;
ScanHierarchy(root, ref missingCount, null, path);
PrefabUtility.UnloadPrefabContents(root);
}
EditorUtility.ClearProgressBar();
Debug.Log($"[MissingScriptUtility] Missing scripts found in prefabs: {missingCount}");
}
[MenuItem("Tools/Diagnostics/Remove Missing Scripts in Open Scenes")]
public static void RemoveMissingScriptsInOpenScenes()
{
int removed = 0;
foreach (var scene in GetLoadedScenes())
{
foreach (var root in scene.GetRootGameObjects())
removed += GameObjectUtility.RemoveMonoBehavioursWithMissingScript(root);
}
if (removed > 0)
EditorSceneManager.MarkAllScenesDirty();
Debug.Log($"[MissingScriptUtility] Removed missing scripts: {removed}");
}
[MenuItem("Tools/Diagnostics/Remove Missing Scripts in Prefabs")]
public static void RemoveMissingScriptsInPrefabs()
{
var prefabGuids = AssetDatabase.FindAssets("t:Prefab");
int removed = 0;
for (int i = 0; i < prefabGuids.Length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(prefabGuids[i]);
EditorUtility.DisplayProgressBar("Cleaning Prefabs", path, (float)i / prefabGuids.Length);
var root = PrefabUtility.LoadPrefabContents(path);
if (root == null)
continue;
int removedInPrefab = GameObjectUtility.RemoveMonoBehavioursWithMissingScript(root);
if (removedInPrefab > 0)
PrefabUtility.SaveAsPrefabAsset(root, path);
removed += removedInPrefab;
PrefabUtility.UnloadPrefabContents(root);
}
EditorUtility.ClearProgressBar();
if (removed > 0)
AssetDatabase.SaveAssets();
Debug.Log($"[MissingScriptUtility] Removed missing scripts in prefabs: {removed}");
}
private static IEnumerable<Scene> GetLoadedScenes()
{
for (int i = 0; i < SceneManager.sceneCount; i++)
{
var scene = SceneManager.GetSceneAt(i);
if (scene.isLoaded)
yield return scene;
}
}
private static void ScanHierarchy(GameObject go, ref int missingCount, HashSet<GameObject> reported, string assetPath = null)
{
var components = go.GetComponents<Component>();
for (int i = 0; i < components.Length; i++)
{
if (components[i] == null)
{
missingCount++;
if (reported == null || reported.Add(go))
{
var label = string.IsNullOrWhiteSpace(assetPath) ? "scene object" : $"prefab {assetPath}";
Debug.LogWarning($"[MissingScriptUtility] Missing script on {label}: {GetHierarchyPath(go.transform)}");
}
break;
}
}
foreach (Transform child in go.transform)
ScanHierarchy(child.gameObject, ref missingCount, reported);
}
private static string GetHierarchyPath(Transform transform)
{
var sb = new StringBuilder(transform.name);
while (transform.parent != null)
{
transform = transform.parent;
sb.Insert(0, transform.name + "/");
}
return sb.ToString();
}
}
#endif

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 203230cc591896b4caa395c2a5681573

View File

@@ -0,0 +1,107 @@
using UnityEditor;
using UnityEditor.XR.Management;
using UnityEditor.XR.Management.Metadata;
using UnityEngine;
using UnityEngine.XR.Management;
#if XR_COMPOSITION_LAYERS
using UnityEngine.XR.OpenXR;
using UnityEngine.XR.OpenXR.Features.CompositionLayers;
#endif
namespace DTrierFlood.Editor
{
static class OpenXRQuestSetup
{
const string GeneralSettingsPath = "Assets/XR/XRGeneralSettingsPerBuildTarget.asset";
const string OpenXRLoaderType = "UnityEngine.XR.OpenXR.OpenXRLoader";
[MenuItem("Tools/XR/Setup OpenXR for Quest (No Meta SDK)")]
static void Setup()
{
var generalSettings = EnsureGeneralSettingsAsset();
EnsureBuildTarget(generalSettings, BuildTargetGroup.Android);
#if XR_COMPOSITION_LAYERS
EnableCompositionLayersFeature(BuildTargetGroup.Android);
EnableCompositionLayersFeature(BuildTargetGroup.Standalone);
#endif
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
Debug.Log("OpenXR is configured for Android. Build the project for Quest using OpenXR.");
}
static XRGeneralSettingsPerBuildTarget EnsureGeneralSettingsAsset()
{
var settings = AssetDatabase.LoadAssetAtPath<XRGeneralSettingsPerBuildTarget>(GeneralSettingsPath);
if (settings != null)
{
EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, settings, true);
return settings;
}
if (!AssetDatabase.IsValidFolder("Assets/XR"))
{
AssetDatabase.CreateFolder("Assets", "XR");
}
settings = ScriptableObject.CreateInstance<XRGeneralSettingsPerBuildTarget>();
AssetDatabase.CreateAsset(settings, GeneralSettingsPath);
EditorBuildSettings.AddConfigObject(XRGeneralSettings.k_SettingsKey, settings, true);
EditorUtility.SetDirty(settings);
return settings;
}
static void EnsureBuildTarget(XRGeneralSettingsPerBuildTarget settings, BuildTargetGroup targetGroup)
{
if (!settings.HasSettingsForBuildTarget(targetGroup))
{
settings.CreateDefaultSettingsForBuildTarget(targetGroup);
}
if (!settings.HasManagerSettingsForBuildTarget(targetGroup))
{
settings.CreateDefaultManagerSettingsForBuildTarget(targetGroup);
}
var generalSettings = settings.SettingsForBuildTarget(targetGroup);
if (generalSettings != null)
{
generalSettings.InitManagerOnStart = true;
EditorUtility.SetDirty(generalSettings);
}
var managerSettings = settings.ManagerSettingsForBuildTarget(targetGroup);
if (managerSettings != null)
{
XRPackageMetadataStore.AssignLoader(managerSettings, OpenXRLoaderType, targetGroup);
EditorUtility.SetDirty(managerSettings);
}
EditorUtility.SetDirty(settings);
}
#if XR_COMPOSITION_LAYERS
static void EnableCompositionLayersFeature(BuildTargetGroup targetGroup)
{
var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup);
if (settings == null)
{
Debug.LogWarning($"OpenXR settings not found for {targetGroup}.");
return;
}
var feature = settings.GetFeature<OpenXRCompositionLayersFeature>();
if (feature == null)
{
Debug.LogWarning($"OpenXR Composition Layers feature not found for {targetGroup}.");
return;
}
feature.enabled = true;
EditorUtility.SetDirty(feature);
EditorUtility.SetDirty(settings);
}
#endif
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bd67663123673d9e5a715676d1c5839a

View File

@@ -0,0 +1,261 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class GeoTileAddressablesLoader : MonoBehaviour
{
[Header("References")]
[SerializeField] private Transform player;
[SerializeField] private Transform tilesParent;
[Header("Paths")]
[SerializeField] private string tileBundleFolderName = "TileBundles";
[SerializeField] private string manifestFileName = "TileManifest.json";
[SerializeField] private string buildTargetFolderOverride = "";
[Header("Streaming")]
[SerializeField] private float loadRadiusMeters = 1500f;
[SerializeField] private float unloadRadiusMeters = 2000f;
[SerializeField] private float updateInterval = 0.5f;
[SerializeField] private int maxConcurrentLoads = 2;
[SerializeField] private bool verboseLogging = false;
private TileManifest manifest;
private readonly Dictionary<string, TileEntry> tiles = new Dictionary<string, TileEntry>();
private readonly Dictionary<string, GameObject> loaded = new Dictionary<string, GameObject>();
private readonly HashSet<string> loading = new HashSet<string>();
private readonly HashSet<string> queued = new HashSet<string>();
private readonly Queue<string> loadQueue = new Queue<string>();
private bool initialized;
private float nextUpdateTime;
private void OnValidate()
{
if (unloadRadiusMeters < loadRadiusMeters)
unloadRadiusMeters = loadRadiusMeters;
if (maxConcurrentLoads < 1)
maxConcurrentLoads = 1;
if (updateInterval < 0.05f)
updateInterval = 0.05f;
}
private void Awake()
{
if (tilesParent == null)
{
var parent = new GameObject("Geo_Tile_Addressables");
tilesParent = parent.transform;
}
}
private void Start()
{
if (player == null && Camera.main != null)
player = Camera.main.transform;
StartCoroutine(Initialize());
}
private IEnumerator Initialize()
{
var buildTargetFolder = string.IsNullOrWhiteSpace(buildTargetFolderOverride)
? GetBuildTargetFolderName()
: buildTargetFolderOverride;
var basePath = Path.Combine(Application.persistentDataPath, tileBundleFolderName, buildTargetFolder);
var manifestPath = Path.Combine(basePath, manifestFileName);
Log($"Initializing loader. BasePath={basePath}");
Log($"ManifestPath={manifestPath}");
if (!File.Exists(manifestPath))
{
Debug.LogError($"[GeoTileAddressablesLoader] Manifest not found: {manifestPath}");
yield break;
}
manifest = JsonUtility.FromJson<TileManifest>(File.ReadAllText(manifestPath));
if (manifest == null || manifest.tiles == null || manifest.tiles.Length == 0)
{
Debug.LogError("[GeoTileAddressablesLoader] Manifest is empty or invalid.");
yield break;
}
tiles.Clear();
foreach (var tile in manifest.tiles)
{
if (!string.IsNullOrWhiteSpace(tile.tileId))
tiles[tile.tileId] = tile;
}
Log($"Manifest loaded. Tiles={tiles.Count} CatalogFile={manifest.catalogFile}");
var catalogPath = Path.Combine(basePath, manifest.catalogFile);
if (!File.Exists(catalogPath))
{
Debug.LogError($"[GeoTileAddressablesLoader] Catalog not found: {catalogPath}");
yield break;
}
Log($"Loading catalog: {catalogPath}");
var handle = Addressables.LoadContentCatalogAsync(ToFileUri(catalogPath), true);
yield return handle;
if (handle.Status != AsyncOperationStatus.Succeeded)
{
Debug.LogError($"[GeoTileAddressablesLoader] Catalog load failed: {handle.OperationException}");
yield break;
}
Log("Catalog loaded successfully.");
initialized = true;
nextUpdateTime = Time.time;
}
private void Update()
{
if (!initialized || player == null)
return;
if (Time.time < nextUpdateTime)
return;
nextUpdateTime = Time.time + updateInterval;
UpdateTileSet();
ProcessQueue();
}
private void UpdateTileSet()
{
var playerPos = player.position;
var tileSize = manifest.tileSizeMeters;
foreach (var kvp in tiles)
{
var tile = kvp.Value;
var tileCenter = new Vector3(
tile.offsetX + tileSize * 0.5f,
tile.baseY,
tile.offsetZ + tileSize * 0.5f);
var distance = Vector2.Distance(
new Vector2(playerPos.x, playerPos.z),
new Vector2(tileCenter.x, tileCenter.z));
if (distance <= loadRadiusMeters)
{
EnqueueTileLoad(tile.tileId);
}
else if (distance >= unloadRadiusMeters)
{
UnloadTile(tile.tileId);
}
}
}
private void EnqueueTileLoad(string tileId)
{
if (loaded.ContainsKey(tileId) || loading.Contains(tileId) || queued.Contains(tileId))
return;
loadQueue.Enqueue(tileId);
queued.Add(tileId);
}
private void ProcessQueue()
{
while (loading.Count < maxConcurrentLoads && loadQueue.Count > 0)
{
var tileId = loadQueue.Dequeue();
queued.Remove(tileId);
StartLoad(tileId);
}
}
private void StartLoad(string tileId)
{
if (!tiles.TryGetValue(tileId, out var tile))
return;
loading.Add(tileId);
Log($"Loading tile {tileId}...");
var handle = Addressables.InstantiateAsync(tileId, tilesParent);
handle.Completed += op =>
{
loading.Remove(tileId);
if (op.Status != AsyncOperationStatus.Succeeded)
{
Debug.LogError($"[GeoTileAddressablesLoader] Load failed for {tileId}: {op.OperationException}");
return;
}
var instance = op.Result;
instance.name = tileId;
instance.transform.position = new Vector3(tile.offsetX, tile.baseY, tile.offsetZ);
loaded[tileId] = instance;
Log($"Loaded tile {tileId}. LoadedCount={loaded.Count}");
};
}
private void UnloadTile(string tileId)
{
if (!loaded.TryGetValue(tileId, out var instance))
return;
Addressables.ReleaseInstance(instance);
loaded.Remove(tileId);
Log($"Unloaded tile {tileId}. LoadedCount={loaded.Count}");
}
private static string GetBuildTargetFolderName()
{
switch (Application.platform)
{
case RuntimePlatform.Android:
return "Android";
case RuntimePlatform.WindowsPlayer:
case RuntimePlatform.WindowsEditor:
return "Windows";
case RuntimePlatform.LinuxPlayer:
case RuntimePlatform.LinuxEditor:
return "Linux";
case RuntimePlatform.OSXPlayer:
case RuntimePlatform.OSXEditor:
return "OSX";
default:
return "Android";
}
}
private static string ToFileUri(string path)
{
var normalized = path.Replace("\\", "/");
return normalized.StartsWith("file://", StringComparison.OrdinalIgnoreCase)
? normalized
: "file://" + normalized;
}
private void OnDestroy()
{
foreach (var instance in loaded.Values)
Addressables.ReleaseInstance(instance);
loaded.Clear();
loading.Clear();
queued.Clear();
loadQueue.Clear();
}
private void Log(string message)
{
if (verboseLogging)
Debug.Log($"[GeoTileAddressablesLoader] {message}");
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 14a2150bfb293bd30a7128844a9755da

View File

@@ -0,0 +1,20 @@
using System;
[Serializable]
public class TileManifest
{
public string buildTarget;
public string catalogFile;
public string catalogHashFile;
public float tileSizeMeters = 1000f;
public TileEntry[] tiles;
}
[Serializable]
public class TileEntry
{
public string tileId;
public float offsetX;
public float offsetZ;
public float baseY;
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d6d4f64953318e53fbf3d8d6333f31b6

View File

@@ -101,9 +101,9 @@ MonoBehaviour:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 3
m_PrefilteringModeAdditionalLight: 4
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilterXRKeywords: 1
m_PrefilterXRKeywords: 0
m_PrefilteringModeForwardPlus: 0
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 0

View File

@@ -70,7 +70,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3}
m_Name: ScreenSpaceAmbientOcclusion
m_EditorClassIdentifier:
m_Active: 1
m_Active: 0
m_Settings:
AOMethod: 0
Downsample: 0

View File

@@ -548,7 +548,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6096094d69d82cc40947df806f66ab34, type: 3}
m_Name: OpenXRCompositionLayersFeature Standalone
m_EditorClassIdentifier: Unity.XR.OpenXR::UnityEngine.XR.OpenXR.Features.CompositionLayers.OpenXRCompositionLayersFeature
m_enabled: 0
m_enabled: 1
nameUi: Composition Layers Support
version: 1.0.0
featureIdInternal: com.unity.openxr.feature.compositionlayers
@@ -594,7 +594,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6096094d69d82cc40947df806f66ab34, type: 3}
m_Name: OpenXRCompositionLayersFeature Android
m_EditorClassIdentifier: Unity.XR.OpenXR::UnityEngine.XR.OpenXR.Features.CompositionLayers.OpenXRCompositionLayersFeature
m_enabled: 0
m_enabled: 1
nameUi: Composition Layers Support
version: 1.0.0
featureIdInternal: com.unity.openxr.feature.compositionlayers
@@ -928,7 +928,7 @@ MonoBehaviour:
- {fileID: -7172283588313398206}
customLoaderName:
m_renderMode: 1
m_latencyOptimization: 0
m_latencyOptimization: 1
m_autoColorSubmissionMode: 1
m_colorSubmissionModes:
m_List: 00000000
@@ -989,19 +989,19 @@ MonoBehaviour:
targetDevices:
- visibleName: Quest
manifestName: quest
enabled: 0
enabled: 1
- visibleName: Quest 2
manifestName: quest2
enabled: 0
enabled: 1
- visibleName: Quest Pro
manifestName: cambria
enabled: 0
enabled: 1
- visibleName: Quest 3
manifestName: eureka
enabled: 1
- visibleName: Quest 3S
manifestName: quest3s
enabled: 0
enabled: 1
forceRemoveInternetPermission: 0
m_symmetricProjection: 0
m_foveatedRenderingApi: 0
@@ -1377,7 +1377,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2b7365b139f7aec43b23d26b7a48b5a6, type: 3}
m_Name: MetaQuestTouchPlusControllerProfile Android
m_EditorClassIdentifier: Unity.XR.OpenXR::UnityEngine.XR.OpenXR.Features.Interactions.MetaQuestTouchPlusControllerProfile
m_enabled: 0
m_enabled: 1
nameUi: Meta Quest Touch Plus Controller Profile
version: 0.0.1
featureIdInternal: com.unity.openxr.feature.input.metaquestplus

View File

@@ -1,5 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7350331264532487781
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: d236b7d11115f2143951f1e14045df39, type: 3}
m_Name: Android Settings
m_EditorClassIdentifier: Unity.XR.Management::UnityEngine.XR.Management.XRGeneralSettings
m_LoaderManagerInstance: {fileID: 7288541399756181229}
m_InitManagerOnStart: 1
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -12,5 +26,23 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d2dc886499c26824283350fa532d087d, type: 3}
m_Name: XRGeneralSettingsPerBuildTarget
m_EditorClassIdentifier: Unity.XR.Management.Editor::UnityEditor.XR.Management.XRGeneralSettingsPerBuildTarget
Keys:
Values: []
Keys: 07000000
Values:
- {fileID: -7350331264532487781}
--- !u!114 &7288541399756181229
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: f4c3631f5e58749a59194e0cf6baf6d5, type: 3}
m_Name: Android Providers
m_EditorClassIdentifier: Unity.XR.Management::UnityEngine.XR.Management.XRManagerSettings
m_RequiresSettingsUpdate: 0
m_AutomaticLoading: 0
m_AutomaticRunning: 0
m_Loaders:
- {fileID: 11400000, guid: 368e1d121d8c5cf4295b728f3b587367, type: 2}

Binary file not shown.