diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab b/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab
new file mode 100644
index 0000000000..d584980843
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &6889225174075073968
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -5591000292386890817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 951099334
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Name
+ value: ObjectToOverride-VariantBlueCylinder
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Mesh
+ value:
+ objectReference: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+ - target: {fileID: 771575417923360819, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 126d2da9b339ba9418b15d150233e786, type: 2}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 29cabf623d47bb345a9bb4140e4397d7, type: 3}
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab.meta b/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab.meta
new file mode 100644
index 0000000000..48810fba88
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantBlueCylinder.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d2bccc96d1636264fa43b546a1b617c3
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab b/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab
new file mode 100644
index 0000000000..51bc81dd5d
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &1231612107922318246
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -5591000292386890817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 951099334
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Name
+ value: ObjectToOverride-VariantOrangeSphere
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Mesh
+ value:
+ objectReference: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+ - target: {fileID: 771575417923360819, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 62ff4693d71b55440a645bbccd83ac8a, type: 2}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 29cabf623d47bb345a9bb4140e4397d7, type: 3}
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab.meta b/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab.meta
new file mode 100644
index 0000000000..1688b772dc
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantOrangeSphere.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2ab098de4ccb3a8459b88084b29fd0ac
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab b/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab
new file mode 100644
index 0000000000..db82dfee5c
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab
@@ -0,0 +1,81 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &7869561524614204950
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -5591000292386890817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 951099334
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Name
+ value: ObjectToOverride-VariantRed
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360819, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: e0f9a13672c7ef74bad00a8ed0dd5c0b, type: 2}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 29cabf623d47bb345a9bb4140e4397d7, type: 3}
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab.meta b/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab.meta
new file mode 100644
index 0000000000..45d5a45af2
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantPink.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cebc356e89448a948922c0f95549ebf3
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab b/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab
new file mode 100644
index 0000000000..743ac71931
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab
@@ -0,0 +1,86 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &5233142666392952286
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -5591000292386890817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: GlobalObjectIdHash
+ value: 951099334
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Name
+ value: ObjectToOverride-VariantRedCapsule
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360817, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Mesh
+ value:
+ objectReference: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+ - target: {fileID: 771575417923360819, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: a7b755ad8e4fe4bdb8f5518c951abc70, type: 2}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 771575417923360822, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 29cabf623d47bb345a9bb4140e4397d7, type: 3}
diff --git a/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab.meta b/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab.meta
new file mode 100644
index 0000000000..b99a02cc5b
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride-VariantRedCapsule.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e32c8adee7794ee4c8db34d79e98821e
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Prefabs/ObjectToOverride.prefab b/testproject/Assets/Prefabs/ObjectToOverride.prefab
new file mode 100644
index 0000000000..c57a30051c
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride.prefab
@@ -0,0 +1,274 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &505388414159745514
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1841158748891296080}
+ - component: {fileID: 674563807513751893}
+ - component: {fileID: 913191476409999419}
+ - component: {fileID: 7037044168295681893}
+ m_Layer: 9
+ m_Name: ObjectLabel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1841158748891296080
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 505388414159745514}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.67, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 771575417923360822}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &674563807513751893
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 505388414159745514}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!102 &913191476409999419
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 505388414159745514}
+ m_Text: No State
+ m_OffsetZ: 0
+ m_CharacterSize: 1
+ m_LineSpacing: 1
+ m_Anchor: 7
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!114 &7037044168295681893
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 505388414159745514}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7b85e388ccb24094d97ef2c46a7ef0d2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &771575417923360811
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 771575417923360822}
+ - component: {fileID: -5591000292386890817}
+ - component: {fileID: 771575417923360817}
+ - component: {fileID: 771575417923360819}
+ - component: {fileID: -5056059992271333076}
+ - component: {fileID: 771575417923360831}
+ - component: {fileID: 4600632750638426092}
+ - component: {fileID: -4944860544295663394}
+ m_Layer: 9
+ m_Name: ObjectToOverride
+ m_TagString: GenericObject
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &771575417923360822
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 0.5, y: 0.75, z: 0.5}
+ m_Children:
+ - {fileID: 1841158748891296080}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &-5591000292386890817
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 951099334
+ AlwaysReplicateAsRoot: 0
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+--- !u!33 &771575417923360817
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &771575417923360819
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 7f7831f04363c2f48ba5edc060a4717b, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &-5056059992271333076
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 1
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!54 &771575417923360831
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ serializedVersion: 2
+ m_Mass: 7
+ m_Drag: 7
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 0
+ m_Interpolate: 1
+ m_Constraints: 112
+ m_CollisionDetection: 0
+--- !u!114 &4600632750638426092
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Authority: 0
+ Channel: 0
+ InLocalSpace: 0
+ FixedSendsPerSecond: 5
+--- !u!114 &-4944860544295663394
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 771575417923360811}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: abb84c1ee2a6fd3449acdf47a14bdf17, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_MoveRandomly: 1
+ HasHandler: 0
diff --git a/testproject/Assets/Prefabs/ObjectToOverride.prefab.meta b/testproject/Assets/Prefabs/ObjectToOverride.prefab.meta
new file mode 100644
index 0000000000..6fa6c177cd
--- /dev/null
+++ b/testproject/Assets/Prefabs/ObjectToOverride.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 29cabf623d47bb345a9bb4140e4397d7
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/References/Scene/PrefabPoolOverride.asset b/testproject/Assets/References/Scene/PrefabPoolOverride.asset
new file mode 100644
index 0000000000..78ce44db80
--- /dev/null
+++ b/testproject/Assets/References/Scene/PrefabPoolOverride.asset
@@ -0,0 +1,19 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 39a16938ffb5cd846a9f6df7a686a9c4, type: 3}
+ m_Name: PrefabPoolOverride
+ m_EditorClassIdentifier:
+ SceneToReference: {fileID: 102900000, guid: 8c9bee1332e0526429d8a2c929945d60, type: 3}
+ m_IncludedScenes: []
+ m_DisplayName: Prefab Pool Override
+ m_ReferencedScenes:
+ - PrefabPoolOverrideExample
diff --git a/testproject/Assets/References/Scene/PrefabPoolOverride.asset.meta b/testproject/Assets/References/Scene/PrefabPoolOverride.asset.meta
new file mode 100644
index 0000000000..76df40bf83
--- /dev/null
+++ b/testproject/Assets/References/Scene/PrefabPoolOverride.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d2e34ed37c087154dbd7f89fd463801b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Tests/Manual/PrefabPool.meta b/testproject/Assets/Samples/PrefabPool.meta
similarity index 100%
rename from testproject/Assets/Tests/Manual/PrefabPool.meta
rename to testproject/Assets/Samples/PrefabPool.meta
diff --git a/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs b/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs
new file mode 100644
index 0000000000..3828a66dcd
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs
@@ -0,0 +1,193 @@
+using UnityEngine;
+using Unity.Multiplayer.Netcode;
+
+
+///
+/// A general object used for pooling purposes
+///
+public class GenericPooledObjectBehaviour : NetworkBehaviour
+{
+ [SerializeField]
+ [Tooltip("This will make the spawned objects move around randomly. !Caution! You can generate a lot of objects this way!")]
+ private bool m_MoveRandomly = true;
+
+ [HideInInspector]
+ public bool HasHandler;
+
+ [HideInInspector]
+ public int SyncrhonizedObjectTypeIndex;
+
+ private Rigidbody m_RigidBody;
+ private MeshRenderer m_MeshRenderer;
+ private Vector3 m_Direction;
+ private float m_Velocity;
+ private float m_VisibilitySpawn;
+ private bool m_ShouldDespawn;
+
+ private void Start()
+ {
+ m_RigidBody = GetComponent();
+ m_MeshRenderer = GetComponent();
+ }
+
+
+
+ ///
+ /// Handles disabling the MeshRenderer when the client despawns a NetworkObject
+ ///
+ public override void OnNetworkDespawn()
+ {
+ if (!IsServer)
+ {
+ if (m_MeshRenderer == null)
+ {
+ m_MeshRenderer = GetComponent();
+ }
+
+ if (m_MeshRenderer != null)
+ {
+ m_MeshRenderer.enabled = false;
+ }
+
+ var objectLabel = GetComponentInChildren();
+ if (objectLabel != null)
+ {
+ objectLabel.enabled = false;
+ }
+ }
+
+ base.OnNetworkDespawn();
+ }
+
+
+ ///
+ /// Handles setting a delay before the newly spawned object is visible
+ /// Note: this might get removed once the snapshot system is synchronizing
+ /// NetworkObjects' spawn and despawn.
+ ///
+ public override void OnNetworkSpawn()
+ {
+ if (!IsServer)
+ {
+ if (m_MeshRenderer == null)
+ {
+ m_MeshRenderer = GetComponent();
+ }
+ m_MeshRenderer.enabled = false;
+ var objectLabel = GetComponentInChildren();
+ if (objectLabel != null)
+ {
+ objectLabel.enabled = false;
+ }
+
+ m_VisibilitySpawn = Time.realtimeSinceStartup + 0.12f;
+ }
+ base.OnNetworkSpawn();
+ }
+
+ ///
+ /// Sets the object's direction and velocity
+ ///
+ /// vector3 direction
+ /// float velocity
+ public void SetDirectionAndVelocity(Vector3 direction, float velocity)
+ {
+ m_Direction = direction;
+ m_Direction.Normalize();
+ m_Direction.y = 0;
+ m_Velocity = velocity;
+ }
+
+ ///
+ /// Handles moving the object based on its current direction and velocity
+ ///
+ private void FixedUpdate()
+ {
+ if (NetworkManager != null && NetworkManager.IsListening)
+ {
+ if (IsOwner)
+ {
+ m_RigidBody.MovePosition(transform.position + m_Direction * (m_Velocity * Time.fixedDeltaTime));
+
+ if (m_MoveRandomly && Random.Range(0.0f, 1.0f) < 0.01f)
+ {
+ var dir = Random.insideUnitCircle;
+ m_Direction.x = dir.x;
+ m_Direction.z = dir.y;
+ }
+ }
+ else
+ {
+ // All of the below is strictly for debugging purposes. None of these conditions should ever be true.
+ if (NetworkObject != null && !NetworkObject.isActiveAndEnabled)
+ {
+ Debug.LogWarning($"{nameof(GenericPooledObjectBehaviour)} id {NetworkObject.NetworkObjectId} is not active and enabled but game object is still active!");
+ }
+
+ if (NetworkObject != null && !NetworkObject.IsSpawned)
+ {
+ Debug.LogWarning($"{nameof(GenericPooledObjectBehaviour)} id {NetworkObject.NetworkObjectId} is not spawned but still active and enabled (forcing set active false)");
+ gameObject.SetActive(false);
+ }
+ }
+ }
+ }
+
+ ///
+ /// This update handles server side despawning and enables client side visibility
+ ///
+ private void Update()
+ {
+ if (IsOwner && m_ShouldDespawn && NetworkObject != null)
+ {
+ m_ShouldDespawn = false;
+
+ NetworkObject.Despawn(HasHandler);
+ if (!HasHandler)
+ {
+ NetworkObject.gameObject.SetActive(false);
+ NetworkObject.gameObject.transform.position = Vector3.zero;
+ }
+ }
+ else if (!IsServer)
+ {
+ // This is here to handle any short term latency between the time
+ // an object becomes spawned to the time it takes to update its first
+ // position.
+ if (m_MeshRenderer != null && !m_MeshRenderer.enabled)
+ {
+ if (m_VisibilitySpawn < Time.realtimeSinceStartup)
+ {
+ m_MeshRenderer.enabled = true;
+ var objectLabel = GetComponentInChildren();
+ if (objectLabel != null)
+ {
+ objectLabel.enabled = true;
+ }
+ }
+ }
+ }
+
+ }
+
+
+ ///
+ /// Host and Server Only:
+ /// When triggered this will start the despawn process
+ ///
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (IsOwner && gameObject.activeInHierarchy)
+ {
+ if (other.CompareTag("GenericObject") || other.CompareTag("Floor"))
+ {
+ return;
+ }
+ else
+ {
+ m_ShouldDespawn = true;
+ }
+ }
+ }
+}
diff --git a/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs.meta b/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs.meta
new file mode 100644
index 0000000000..35283cca24
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/GenericPooledObjectBehaviour.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: abb84c1ee2a6fd3449acdf47a14bdf17
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs
new file mode 100644
index 0000000000..eecba0456a
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs
@@ -0,0 +1,120 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Unity.Multiplayer.Netcode;
+
+public class NetworkPrefabHandlerObjectPool : NetworkBehaviour, INetworkPrefabInstanceHandler
+{
+ [SerializeField]
+ private GameObject m_ObjectToPool;
+
+ [SerializeField]
+ private int m_ObjectPoolSize = 15;
+
+ [SerializeField]
+ [Range(1, 5)]
+ private int m_SpawnsPerSecond = 2;
+
+ private List m_ObjectsPool;
+
+ private bool m_IsSpawningObjects;
+
+ public override void OnNetworkSpawn()
+ {
+ if (NetworkManager && NetworkManager.PrefabHandler != null)
+ {
+ NetworkManager.PrefabHandler.AddHandler(m_ObjectToPool, this);
+ }
+
+ // This assures we have the right prefab
+ if (IsClient)
+ {
+ m_ObjectToPool = NetworkManager.GetNetworkPrefabOverride(m_ObjectToPool);
+ }
+
+ if (m_ObjectToPool != null)
+ {
+ m_ObjectsPool = new List();
+ for (int i = 0; i < m_ObjectPoolSize; i++)
+ {
+ InstantiatePoolObject().SetActive(false);
+ }
+ }
+
+ // Host and Server spawn the objects
+ if (IsServer)
+ {
+ StartCoroutine(SpawnObjects());
+ }
+ }
+
+ private GameObject InstantiatePoolObject()
+ {
+ m_ObjectsPool.Add(Instantiate(m_ObjectToPool));
+ return m_ObjectsPool[m_ObjectsPool.Count - 1];
+ }
+
+ private GameObject GetNextSpawnObject()
+ {
+ foreach (var gameObject in m_ObjectsPool)
+ {
+ if (!gameObject.activeInHierarchy)
+ {
+ return gameObject;
+ }
+ }
+ //We are out of objects, expand our pool by 1 more NetworkObject
+ return InstantiatePoolObject();
+ }
+
+ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaternion rotation)
+ {
+ var gameObject = GetNextSpawnObject();
+ gameObject.SetActive(true);
+ gameObject.transform.position = position;
+ gameObject.transform.rotation = rotation;
+ return gameObject.GetComponent();
+ }
+
+ public void Destroy(NetworkObject networkObject)
+ {
+ if (m_ObjectsPool.Contains(networkObject.gameObject))
+ {
+ networkObject.gameObject.SetActive(false);
+ }
+ }
+
+ private IEnumerator SpawnObjects()
+ {
+ //Exit if we are a client or we happen to not have a NetworkManager
+ if (NetworkManager == null || (NetworkManager.IsClient && !NetworkManager.IsHost && !NetworkManager.IsServer))
+ {
+ yield return null;
+ }
+
+ m_IsSpawningObjects = true;
+
+ var entitySpawnUpdateRate = 1.0f;
+ while (m_IsSpawningObjects)
+ {
+ entitySpawnUpdateRate = 1.0f / (float)m_SpawnsPerSecond;
+
+ GameObject go = GetNextSpawnObject();
+ if (go != null)
+ {
+ go.SetActive(true);
+ go.transform.position = transform.position;
+
+ float ang = Random.Range(0.0f, 2 * Mathf.PI);
+ go.GetComponent().SetDirectionAndVelocity(new Vector3(Mathf.Cos(ang), 0, Mathf.Sin(ang)), 4);
+
+ var no = go.GetComponent();
+ if (!no.IsSpawned)
+ {
+ no.Spawn(true);
+ }
+ }
+ yield return new WaitForSeconds(entitySpawnUpdateRate);
+ }
+ }
+}
diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs.meta b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs.meta
new file mode 100644
index 0000000000..10f6552938
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPool.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 83e085235981b734bad565d9a60de47a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs
new file mode 100644
index 0000000000..b2af5b2e5a
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs
@@ -0,0 +1,189 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Unity.Multiplayer.Netcode;
+
+///
+/// This is an example of using more than one Network Prefab override when using a custom handler
+/// USAGE NOTE: When using more than one network prefab, it is important to understand that each
+/// client determines what prefab they will be using and will not be synchronized across other clients.
+/// This feature is primarily to be used for things like platform specific Network Prefabs where
+/// things like collision models or graphics related assets might need to vary between platforms.
+/// The usage of different visual assets used is strictly for example purposes only.
+///
+public class NetworkPrefabHandlerObjectPoolOverride : NetworkBehaviour, INetworkPrefabInstanceHandler
+{
+ private GameObject m_ObjectToPool;
+
+ [SerializeField]
+ private GameObject m_ObjectToOverride;
+
+ [SerializeField]
+ private List m_ObjectOverrides;
+
+ [SerializeField]
+ private int m_ObjectPoolSize = 15;
+
+ [SerializeField]
+ [Range(1, 5)]
+ private int m_SpawnsPerSecond = 2;
+
+ private Dictionary> m_ObjectsPool;
+ private List m_NameValidation;
+
+ private bool m_IsSpawningObjects;
+
+ public override void OnNetworkSpawn()
+ {
+ // Register your object to be overridden (m_ObjectToOverride) with this INetworkPrefabInstanceHandler implementation
+ if (NetworkManager && NetworkManager.PrefabHandler != null)
+ {
+ NetworkManager.PrefabHandler.AddHandler(m_ObjectToOverride, this);
+ }
+
+ // Start with the base object to be overridden (i.e. Server mode will always use this)
+ m_ObjectToPool = m_ObjectToOverride;
+
+ // Host and Client need to do an extra step
+ if (IsClient)
+ {
+ // Makes sure we have the right prefab to create a pool for (i.e. Clients and Hosts)
+ m_ObjectToPool = NetworkManager.GetNetworkPrefabOverride(m_ObjectToPool);
+
+ // Host Only:
+ // Since the host will be spawning overrides, we need to manually create the link between the
+ // m_ObjectToOverride and the objects that could override it (i.e. m_ObjectOverrides)
+ if (IsHost)
+ {
+ // While this seems redundant, we could theoretically have several objects that we could potentially be spawning
+ NetworkManager.PrefabHandler.RegisterHostGlobalObjectIdHashValues(m_ObjectToOverride, m_ObjectOverrides);
+ }
+ }
+
+ m_ObjectsPool = new Dictionary>();
+ m_NameValidation = new List();
+ for (int x = 0; x < m_ObjectOverrides.Count; x++)
+ {
+ // If we are a server, then we just create a big pool of the same base override object
+ // otherwise for Host and Client we use the list of object overrides
+ var objectIndex = (IsServer && !IsHost) ? 0 : x;
+ var objectToPool = (IsServer && !IsHost) ? m_ObjectToOverride : m_ObjectOverrides[objectIndex];
+
+ if (!m_ObjectsPool.ContainsKey(objectIndex))
+ {
+ m_ObjectsPool.Add(objectIndex, new List());
+ }
+
+ for (int y = 0; y < m_ObjectPoolSize; y++)
+ {
+ var newObject = Instantiate(objectToPool);
+
+ // One way to verify this object exists
+ // You could also make this a dictionary that linked to the actual GameObject instance
+ newObject.name += m_ObjectsPool[objectIndex].Count.ToString();
+ m_NameValidation.Add(newObject.name);
+
+ // Make sure we start this object as inactive
+ newObject.SetActive(false);
+ m_ObjectsPool[objectIndex].Add(newObject);
+ }
+ }
+
+ // Host and Server spawn the objects
+ if (IsServer)
+ {
+ StartCoroutine(SpawnObjects());
+ }
+ }
+
+ private GameObject GetNextSpawnObject(int synchronizedIndex = -1)
+ {
+ // If we are just a server use index 0, otherwise we are a host or client so get a random override object to spawn
+ var indexType = IsServer && !IsHost ? 0 : Random.Range(0, m_ObjectOverrides.Count - 1);
+
+ if (m_ObjectsPool.ContainsKey(indexType))
+ {
+ foreach (var gameObject in m_ObjectsPool[indexType])
+ {
+ if (!gameObject.activeInHierarchy)
+ {
+ return gameObject;
+ }
+ }
+ // We are out of objects, get the type of object we need to instantiate and add to the pool
+ var objectToPool = (IsServer && !IsHost) ? m_ObjectToOverride : m_ObjectOverrides[indexType];
+
+ // Expand our pool by 1 more NetworkObject
+ var newObject = Instantiate(objectToPool);
+ var genericObjectPooledBehaviour = NetworkObject.GetComponent();
+ genericObjectPooledBehaviour.SyncrhonizedObjectTypeIndex = (IsServer && !IsHost) ? Random.Range(0, m_ObjectOverrides.Count - 1) : indexType;
+ m_ObjectsPool[indexType].Add(newObject);
+ return newObject;
+ }
+ // If requesting a bad index return null
+ return null;
+ }
+
+ public void OnSynchronizeWrite(NetworkWriter networkWriter, NetworkObject networkObject)
+ {
+ var genericObjectPooledBehaviour = NetworkObject.GetComponent();
+ networkWriter.WriteInt32Packed(genericObjectPooledBehaviour.SyncrhonizedObjectTypeIndex);
+ }
+
+ public NetworkObject Instantiate(ulong ownerClientId, Vector3 position, Quaternion rotation)
+ {
+ var gameObject = GetNextSpawnObject();
+ gameObject.SetActive(true);
+ gameObject.transform.position = position;
+ gameObject.transform.rotation = rotation;
+ return gameObject.GetComponent();
+ }
+
+ public void Destroy(NetworkObject networkObject)
+ {
+ if (m_NameValidation.Contains(networkObject.gameObject.name))
+ {
+ networkObject.gameObject.SetActive(false);
+ }
+ }
+
+ ///
+ /// Spawns the objects.
+ ///
+ /// IEnumerator
+ private IEnumerator SpawnObjects()
+ {
+ //Exit if we are a client or we happen to not have a NetworkManager
+ if (NetworkManager == null || (NetworkManager.IsClient && !NetworkManager.IsHost && !NetworkManager.IsServer))
+ {
+ yield return null;
+ }
+
+ m_IsSpawningObjects = true;
+
+ var entitySpawnUpdateRate = 1.0f;
+
+ while (m_IsSpawningObjects)
+ {
+ entitySpawnUpdateRate = 1.0f / (float)m_SpawnsPerSecond;
+
+ GameObject go = GetNextSpawnObject();
+ if (go != null)
+ {
+ go.SetActive(true);
+ go.transform.position = transform.position;
+
+ float ang = Random.Range(0.0f, 2 * Mathf.PI);
+ go.GetComponent().SetDirectionAndVelocity(new Vector3(Mathf.Cos(ang), 0, Mathf.Sin(ang)), 4);
+
+ var no = go.GetComponent();
+ if (!no.IsSpawned)
+ {
+ no.Spawn(true);
+ }
+ }
+ yield return new WaitForSeconds(entitySpawnUpdateRate);
+ }
+ }
+}
+
diff --git a/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs.meta b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs.meta
new file mode 100644
index 0000000000..efff9d8838
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/NetworkPrefabHandlerObjectPoolOverride.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e75c6dd7d88b8ef47bc652a967fa34eb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity b/testproject/Assets/Samples/PrefabPool/PrefabPoolExample.unity
similarity index 79%
rename from testproject/Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity
rename to testproject/Assets/Samples/PrefabPool/PrefabPoolExample.unity
index 1a986b15ca..b3869569bb 100644
--- a/testproject/Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity
+++ b/testproject/Assets/Samples/PrefabPool/PrefabPoolExample.unity
@@ -512,7 +512,6 @@ RectTransform:
- {fileID: 1588117328}
- {fileID: 42803802}
- {fileID: 1834318148}
- - {fileID: 2058276876}
- {fileID: 1383741138}
m_Father: {fileID: 0}
m_RootOrder: 4
@@ -618,85 +617,6 @@ Transform:
m_Father: {fileID: 1332123092}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &562991978
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 562991979}
- - component: {fileID: 562991981}
- - component: {fileID: 562991980}
- m_Layer: 5
- m_Name: BoxGeneratorCount
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &562991979
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 562991978}
- 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_Children: []
- m_Father: {fileID: 2058276876}
- m_RootOrder: 3
- 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: 3, y: 20}
- m_SizeDelta: {x: 160, y: 30}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &562991980
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 562991978}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.9811321, g: 0.9811321, b: 0.9811321, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 18
- m_FontStyle: 1
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 4
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text: 0
---- !u!222 &562991981
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 562991978}
- m_CullTransparentMesh: 1
--- !u!1 &575203307
GameObject:
m_ObjectHideFlags: 0
@@ -963,7 +883,7 @@ MonoBehaviour:
type: 3}
NetworkPrefabs:
- Override: 0
- Prefab: {fileID: 771575417923360811, guid: c0a45bdb516f341498d933b7a7ed4fc1,
+ Prefab: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
type: 3}
SourcePrefabToOverride: {fileID: 771575417923360811, guid: c0a45bdb516f341498d933b7a7ed4fc1,
type: 3}
@@ -1037,7 +957,7 @@ GameObject:
- component: {fileID: 1113539281}
- component: {fileID: 1113539279}
m_Layer: 0
- m_Name: PooledPrefabSpawnHandler
+ m_Name: PrefabPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1052,22 +972,13 @@ MonoBehaviour:
m_GameObject: {fileID: 1113539278}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8c48ea35c67e64f7fac22a3f6831ca88, type: 3}
+ m_Script: {fileID: 11500000, guid: 83e085235981b734bad565d9a60de47a, type: 3}
m_Name:
m_EditorClassIdentifier:
- AutoSpawnEnable: 1
- InitialSpawnDelay: 0.2
- SpawnsPerSecond: 2
- PoolSize: 10
- ObjectSpeed: 8
- EnableHandler: 1
- RegisterUsingNetworkObject: 0
- ServerObjectToPool: {fileID: 771575417923360811, guid: c0a45bdb516f341498d933b7a7ed4fc1,
+ m_ObjectToPool: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
type: 3}
- ClientObjectToPool: {fileID: 0}
- SwitchScene: {fileID: 0}
- SpawnSlider: {fileID: 2058276877}
- SpawnSliderValueText: {fileID: 562991980}
+ m_ObjectPoolSize: 15
+ m_SpawnsPerSecond: 2
--- !u!4 &1113539280
Transform:
m_ObjectHideFlags: 0
@@ -1259,7 +1170,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 290861172}
- m_RootOrder: 4
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -1308,192 +1219,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1383741137}
m_CullTransparentMesh: 0
---- !u!1 &1387688804
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1387688805}
- m_Layer: 5
- m_Name: Handle Slide Area
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1387688805
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1387688804}
- 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_Children:
- - {fileID: 1523424137}
- m_Father: {fileID: 2058276876}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -20, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &1523424136
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1523424137}
- - component: {fileID: 1523424139}
- - component: {fileID: 1523424138}
- m_Layer: 5
- m_Name: Handle
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1523424137
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1523424136}
- 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_Children: []
- m_Father: {fileID: 1387688805}
- m_RootOrder: 0
- 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: 20, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1523424138
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1523424136}
- 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: 1, g: 1, b: 1, a: 1}
- 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: 10913, guid: 0000000000000000f000000000000000, type: 0}
- 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 &1523424139
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1523424136}
- m_CullTransparentMesh: 1
---- !u!1 &1549858058
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1549858059}
- - component: {fileID: 1549858061}
- - component: {fileID: 1549858060}
- m_Layer: 5
- m_Name: Fill
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1549858059
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1549858058}
- 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_Children: []
- m_Father: {fileID: 1889006547}
- m_RootOrder: 0
- 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: 10, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1549858060
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1549858058}
- 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: 1, g: 1, b: 1, a: 1}
- 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: 10905, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- 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 &1549858061
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1549858058}
- m_CullTransparentMesh: 1
--- !u!1 &1588117327
GameObject:
m_ObjectHideFlags: 0
@@ -1914,117 +1639,6 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 1865409448}
m_PrefabAsset: {fileID: 0}
---- !u!1 &1889006546
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1889006547}
- m_Layer: 5
- m_Name: Fill Area
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1889006547
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1889006546}
- 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_Children:
- - {fileID: 1549858059}
- m_Father: {fileID: 2058276876}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.25}
- m_AnchorMax: {x: 1, y: 0.75}
- m_AnchoredPosition: {x: -5, y: 0}
- m_SizeDelta: {x: -20, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!1 &2021718438
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2021718439}
- - component: {fileID: 2021718441}
- - component: {fileID: 2021718440}
- m_Layer: 5
- m_Name: Background
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2021718439
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2021718438}
- 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_Children: []
- m_Father: {fileID: 2058276876}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0.25}
- m_AnchorMax: {x: 1, y: 0.75}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &2021718440
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2021718438}
- 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: 1, g: 1, b: 1, a: 1}
- 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: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- 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 &2021718441
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2021718438}
- m_CullTransparentMesh: 1
--- !u!1 &2028091268
GameObject:
m_ObjectHideFlags: 0
@@ -2121,109 +1735,6 @@ Transform:
m_Father: {fileID: 1332123092}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &2058276875
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2058276876}
- - component: {fileID: 2058276877}
- m_Layer: 5
- m_Name: BoxGeneratorSlider
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &2058276876
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2058276875}
- 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_Children:
- - {fileID: 2021718439}
- - {fileID: 1889006547}
- - {fileID: 1387688805}
- - {fileID: 562991979}
- m_Father: {fileID: 290861172}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.5, y: 1}
- m_AnchorMax: {x: 0.5, y: 1}
- m_AnchoredPosition: {x: 0.99993896, y: -63.99997}
- m_SizeDelta: {x: 400, y: 20}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &2058276877
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2058276875}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_WrapAround: 0
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
- m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
- m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_SelectedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_SelectedTrigger: Selected
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 1523424138}
- m_FillRect: {fileID: 1549858059}
- m_HandleRect: {fileID: 1523424137}
- m_Direction: 0
- m_MinValue: 0
- m_MaxValue: 550
- m_WholeNumbers: 1
- m_Value: 2
- m_OnValueChanged:
- m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 1113539279}
- m_TargetAssemblyTypeName: ServerBoxGenerator, Core
- m_MethodName: UpdateSpawnsPerSecond
- m_Mode: 1
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
--- !u!1 &2107482020
GameObject:
m_ObjectHideFlags: 0
@@ -2406,7 +1917,7 @@ PrefabInstance:
type: 3}
propertyPath: m_SceneMenuToLoad
value:
- objectReference: {fileID: 11400000, guid: 4a3cdce12e998384f8aca207b5a2c700,
+ objectReference: {fileID: 11400000, guid: c10d995498e0c514a853c3506031d3fb,
type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3200770c16e3b2b4ebe7f604154faac7, type: 3}
diff --git a/testproject/Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity.meta b/testproject/Assets/Samples/PrefabPool/PrefabPoolExample.unity.meta
similarity index 100%
rename from testproject/Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity.meta
rename to testproject/Assets/Samples/PrefabPool/PrefabPoolExample.unity.meta
diff --git a/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity b/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity
new file mode 100644
index 0000000000..ec140fb1aa
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity
@@ -0,0 +1,1930 @@
+%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: 9
+ 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_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ 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_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ 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: 0}
+ m_LightingSettings: {fileID: 903034822}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ 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
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &37242881
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 37242883}
+ - component: {fileID: 37242882}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &37242882
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 37242881}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &37242883
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 37242881}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!224 &42803802 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ m_PrefabInstance: {fileID: 2848221156282925290}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1 &57392470
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 57392474}
+ - component: {fileID: 57392473}
+ - component: {fileID: 57392472}
+ - component: {fileID: 57392471}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &57392471
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 57392470}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &57392472
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 57392470}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 00cf8ac777c8c42e8967157f70fbfcbf, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &57392473
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 57392470}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &57392474
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 57392470}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -30.5, y: 0.49999994, z: 0}
+ m_LocalScale: {x: 1, y: 3, z: 62}
+ m_Children: []
+ m_Father: {fileID: 1332123092}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &167044830
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 167044834}
+ - component: {fileID: 167044833}
+ - component: {fileID: 167044832}
+ - component: {fileID: 167044831}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &167044831
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 167044830}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &167044832
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 167044830}
+ 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 &167044833
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 167044830}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &167044834
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 167044830}
+ 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_Children:
+ - {fileID: 1865409449}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!1 &290861168
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 290861172}
+ - component: {fileID: 290861171}
+ - component: {fileID: 290861170}
+ - component: {fileID: 290861169}
+ m_Layer: 5
+ m_Name: UI
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &290861169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290861168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &290861170
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290861168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 1
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 1024, y: 768}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0.5
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &290861171
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290861168}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 575203309}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &290861172
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 290861168}
+ 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_Children:
+ - {fileID: 1588117328}
+ - {fileID: 42803802}
+ - {fileID: 1834318148}
+ - {fileID: 1383741138}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!1 &336568645
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 336568649}
+ - component: {fileID: 336568648}
+ - component: {fileID: 336568647}
+ - component: {fileID: 336568646}
+ m_Layer: 0
+ m_Name: Floor
+ m_TagString: Floor
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &336568646
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 336568645}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &336568647
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 336568645}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 00cf8ac777c8c42e8967157f70fbfcbf, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &336568648
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 336568645}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &336568649
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 336568645}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.50000006, z: 0}
+ m_LocalScale: {x: 60, y: 1, z: 60}
+ m_Children: []
+ m_Father: {fileID: 1332123092}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &575203307
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 575203310}
+ - component: {fileID: 575203309}
+ - component: {fileID: 575203308}
+ 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 &575203308
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575203307}
+ m_Enabled: 1
+--- !u!20 &575203309
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575203307}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ 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 &575203310
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 575203307}
+ m_LocalRotation: {x: 0.41890106, y: -0, z: -0, w: 0.9080319}
+ m_LocalPosition: {x: 0, y: 42, z: -46}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 49.530003, y: 0, z: 0}
+--- !u!1 &599972120
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 599972121}
+ - component: {fileID: 599972123}
+ - component: {fileID: 599972122}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &599972121
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 599972120}
+ 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_Children: []
+ m_Father: {fileID: 1588117328}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &599972122
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 599972120}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 0.5058824, b: 0.003921569, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Show Server Stats
+--- !u!222 &599972123
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 599972120}
+ m_CullTransparentMesh: 1
+--- !u!850595691 &903034822
+LightingSettings:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ serializedVersion: 3
+ m_GIWorkflowMode: 1
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_RealtimeEnvironmentLighting: 1
+ m_BounceScale: 1
+ m_AlbedoBoost: 1
+ m_IndirectOutputScale: 1
+ m_UsingShadowmask: 1
+ m_BakeBackend: 1
+ m_LightmapMaxSize: 1024
+ m_BakeResolution: 40
+ m_Padding: 2
+ m_TextureCompression: 1
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAO: 0
+ m_MixedBakeMode: 2
+ m_LightmapsBakeMode: 1
+ m_FilterMode: 1
+ m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
+ m_ExportTrainingData: 0
+ 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
+ m_PVRSampleCount: 512
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_LightProbeSampleCountMultiplier: 4
+ m_PVRBounces: 2
+ m_PVRMinBounces: 1
+ m_PVREnvironmentMIS: 1
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+--- !u!1 &1024114717
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1024114720}
+ - component: {fileID: 1024114719}
+ - component: {fileID: 1024114718}
+ m_Layer: 0
+ m_Name: NetworkManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1024114718
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1024114717}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DontDestroy: 1
+ RunInBackground: 1
+ LogLevel: 1
+ NetworkConfig:
+ ProtocolVersion: 0
+ NetworkTransport: {fileID: 1024114719}
+ RegisteredScenes:
+ - PrefabPoolExample
+ - PrefabPoolOverrideExample
+ AllowRuntimeSceneChanges: 0
+ PlayerPrefab: {fileID: 4079352819444256614, guid: c16f03336b6104576a565ef79ad643c0,
+ type: 3}
+ NetworkPrefabs:
+ - Override: 0
+ Prefab: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ SourcePrefabToOverride: {fileID: 771575417923360811, guid: c0a45bdb516f341498d933b7a7ed4fc1,
+ type: 3}
+ SourceHashToOverride: 0
+ OverridingTargetPrefab: {fileID: 8059323910720821982, guid: d143db9172e1f234e99d450286b77695,
+ type: 3}
+ TickRate: 30
+ ClientConnectionBufferTimeout: 10
+ ConnectionApproval: 0
+ ConnectionData:
+ EnableTimeResync: 0
+ TimeResyncInterval: 30
+ EnableNetworkVariable: 1
+ EnsureNetworkVariableLengthSafety: 0
+ EnableSceneManagement: 1
+ ForceSamePrefabs: 1
+ RecycleNetworkIds: 1
+ NetworkIdRecycleDelay: 120
+ RpcHashSize: 0
+ LoadSceneTimeOut: 120
+ MessageBufferTimeout: 20
+ EnableNetworkLogs: 1
+--- !u!114 &1024114719
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1024114717}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b84c2d8dfe509a34fb59e2b81f8e1319, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ MessageBufferSize: 65535
+ MaxConnections: 100
+ MaxSentMessageQueueSize: 512
+ ConnectAddress: 127.0.0.1
+ ConnectPort: 7777
+ ServerListenPort: 7777
+ ServerWebsocketListenPort: 8887
+ SupportWebsocket: 0
+ Channels: []
+ UseMLAPIRelay: 0
+ MLAPIRelayAddress: 184.72.104.138
+ MLAPIRelayPort: 8888
+ MessageSendMode: 0
+--- !u!4 &1024114720
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1024114717}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.000061035156, y: 0.000015258789, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1113539278
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1113539280}
+ - component: {fileID: 1113539281}
+ - component: {fileID: 1113539279}
+ m_Layer: 0
+ m_Name: PrefabPoolOverride
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1113539279
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1113539278}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e75c6dd7d88b8ef47bc652a967fa34eb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ObjectToOverride: {fileID: 771575417923360811, guid: 29cabf623d47bb345a9bb4140e4397d7,
+ type: 3}
+ m_ObjectOverrides:
+ - {fileID: 4767891739022460405, guid: e32c8adee7794ee4c8db34d79e98821e, type: 3}
+ - {fileID: 7458914543545669181, guid: cebc356e89448a948922c0f95549ebf3, type: 3}
+ - {fileID: 1991364468704639885, guid: 2ab098de4ccb3a8459b88084b29fd0ac, type: 3}
+ - {fileID: 6137946741893414299, guid: d2bccc96d1636264fa43b546a1b617c3, type: 3}
+ m_ObjectPoolSize: 15
+ m_SynchronizeOverrides: 1
+ m_SpawnsPerSecond: 2
+--- !u!4 &1113539280
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1113539278}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.5, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1113539281
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1113539278}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 3569926023
+ AlwaysReplicateAsRoot: 0
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+--- !u!1 &1332123091
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1332123092}
+ m_Layer: 0
+ m_Name: Level
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1332123092
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332123091}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.000000059604645, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 336568649}
+ - {fileID: 2028091272}
+ - {fileID: 1857685347}
+ - {fileID: 57392474}
+ - {fileID: 1336081255}
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1336081251
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1336081255}
+ - component: {fileID: 1336081254}
+ - component: {fileID: 1336081253}
+ - component: {fileID: 1336081252}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1336081252
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1336081251}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1336081253
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1336081251}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 00cf8ac777c8c42e8967157f70fbfcbf, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1336081254
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1336081251}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1336081255
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1336081251}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 30.5, y: 0.49999994, z: 0}
+ m_LocalScale: {x: 1, y: 3, z: 62}
+ m_Children: []
+ m_Father: {fileID: 1332123092}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1383741137
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1383741138}
+ - component: {fileID: 1383741140}
+ - component: {fileID: 1383741139}
+ m_Layer: 5
+ m_Name: SceneName
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1383741138
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1383741137}
+ 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_Children: []
+ m_Father: {fileID: 290861172}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -139.70001, y: 45.59999}
+ m_SizeDelta: {x: 250, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1383741139
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1383741137}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.990566, g: 0.990566, b: 0.990566, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 18
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 1
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Prefab Pool Override Example
+--- !u!222 &1383741140
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1383741137}
+ m_CullTransparentMesh: 0
+--- !u!1 &1588117327
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1588117328}
+ - component: {fileID: 1588117331}
+ - component: {fileID: 1588117330}
+ - component: {fileID: 1588117329}
+ m_Layer: 5
+ m_Name: ToggleClientServerStats
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1588117328
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1588117327}
+ 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_Children:
+ - {fileID: 599972121}
+ m_Father: {fileID: 290861172}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 130, y: 51}
+ m_SizeDelta: {x: 160, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1588117329
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1588117327}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1588117330}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2107482022}
+ m_TargetAssemblyTypeName: StatsDisplay, Assembly-CSharp
+ m_MethodName: ToggleClientSever
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1588117330
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1588117327}
+ 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.1981132, g: 0.1981132, b: 0.1981132, a: 1}
+ 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: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ 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 &1588117331
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1588117327}
+ m_CullTransparentMesh: 1
+--- !u!1 &1834318145
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1834318148}
+ - component: {fileID: 1834318147}
+ - component: {fileID: 1834318146}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1834318146
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1834318145}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &1834318147
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1834318145}
+ 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 &1834318148
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1834318145}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -431, y: -242.5, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 290861172}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1857685343
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1857685347}
+ - component: {fileID: 1857685346}
+ - component: {fileID: 1857685345}
+ - component: {fileID: 1857685344}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1857685344
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1857685343}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1857685345
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1857685343}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 00cf8ac777c8c42e8967157f70fbfcbf, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1857685346
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1857685343}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1857685347
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1857685343}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.49999994, z: -30.5}
+ m_LocalScale: {x: 60, y: 3, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332123092}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1865409448
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 167044834}
+ m_Modifications:
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: -952
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: -344
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6963777608485144162, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ propertyPath: m_Name
+ value: ConnectionModeButtons
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d725b5588e1b956458798319e6541d84, type: 3}
+--- !u!224 &1865409449 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84,
+ type: 3}
+ m_PrefabInstance: {fileID: 1865409448}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1 &2028091268
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2028091272}
+ - component: {fileID: 2028091271}
+ - component: {fileID: 2028091270}
+ - component: {fileID: 2028091269}
+ m_Layer: 0
+ m_Name: Side
+ m_TagString: Boundary
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &2028091269
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2028091268}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &2028091270
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2028091268}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 00cf8ac777c8c42e8967157f70fbfcbf, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2028091271
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2028091268}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2028091272
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2028091268}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.49999994, z: 30.5}
+ m_LocalScale: {x: 60, y: 3, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332123092}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2107482020
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2107482021}
+ - component: {fileID: 2107482022}
+ - component: {fileID: 2107482023}
+ m_Layer: 0
+ m_Name: Stats
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2107482021
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2107482020}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 318.45444, y: 110.697815, z: 216.79077}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2107482022
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2107482020}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cb5f3e55f5dd247129d8a4979b80ebbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ClientServerToggle: {fileID: 1588117327}
+--- !u!114 &2107482023
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2107482020}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ GlobalObjectIdHash: 4056472094
+ AlwaysReplicateAsRoot: 0
+ DontDestroyWithOwner: 0
+ AutoObjectParentSync: 1
+--- !u!1001 &2848221156282925290
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 290861172}
+ m_Modifications:
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_Pivot.x
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_Pivot.y
+ value: 0.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchorMax.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchorMin.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchorMin.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 20
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_SizeDelta.y
+ value: 25
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchoredPosition.x
+ value: -23.40039
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_AnchoredPosition.y
+ value: -23.800293
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2848221156307247795, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_Name
+ value: ExitButton
+ objectReference: {fileID: 0}
+ - target: {fileID: 5266522511616468950, guid: 3200770c16e3b2b4ebe7f604154faac7,
+ type: 3}
+ propertyPath: m_SceneMenuToLoad
+ value:
+ objectReference: {fileID: 11400000, guid: c10d995498e0c514a853c3506031d3fb,
+ type: 2}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 3200770c16e3b2b4ebe7f604154faac7, type: 3}
diff --git a/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity.meta b/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity.meta
new file mode 100644
index 0000000000..e905ff676a
--- /dev/null
+++ b/testproject/Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8c9bee1332e0526429d8a2c929945d60
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Samples/SamplesMenu.unity b/testproject/Assets/Samples/SamplesMenu.unity
index 8a2a70878f..6fe81d20a1 100644
--- a/testproject/Assets/Samples/SamplesMenu.unity
+++ b/testproject/Assets/Samples/SamplesMenu.unity
@@ -2496,6 +2496,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_SceneMenus:
- {fileID: 11400000, guid: 21aae92071ad50448a45b013d8346639, type: 2}
+ - {fileID: 11400000, guid: 660535b6e155b5b4bbede52313fcb32e, type: 2}
+ - {fileID: 11400000, guid: d2e34ed37c087154dbd7f89fd463801b, type: 2}
- {fileID: 11400000, guid: 138603ab28f532140b48a57bea0e54b0, type: 2}
m_SceneMenusDropDownList: {fileID: 1362704539}
m_OptionsList:
diff --git a/testproject/Assets/Scripts/NetworkObjectLabel.cs b/testproject/Assets/Scripts/NetworkObjectLabel.cs
new file mode 100644
index 0000000000..a341e8e43a
--- /dev/null
+++ b/testproject/Assets/Scripts/NetworkObjectLabel.cs
@@ -0,0 +1,59 @@
+using UnityEngine;
+using Unity.Multiplayer.Netcode;
+
+public class NetworkObjectLabel : NetworkBehaviour
+{
+
+ private TextMesh m_ObjectLabel;
+ private MeshRenderer m_Renderer;
+
+ private void OnEnable()
+ {
+ if (m_Renderer == null)
+ {
+ m_Renderer = GetComponent();
+ }
+
+ if(m_Renderer != null)
+ {
+ m_Renderer.enabled = true;
+ }
+ }
+
+ private void OnDisable()
+ {
+ if (m_Renderer == null)
+ {
+ m_Renderer = GetComponent();
+ }
+
+ if (m_Renderer != null)
+ {
+ m_Renderer.enabled = false;
+ }
+ }
+
+ public override void OnNetworkSpawn()
+ {
+ if (m_ObjectLabel == null)
+ {
+ m_ObjectLabel = GetComponent();
+ }
+
+ m_ObjectLabel.text = NetworkObject.NetworkObjectId.ToString();
+
+ base.OnNetworkSpawn();
+ }
+
+ public override void OnNetworkDespawn()
+ {
+ if (m_ObjectLabel == null)
+ {
+ m_ObjectLabel = GetComponent();
+ }
+
+ m_ObjectLabel.text = "None";
+
+ base.OnNetworkDespawn();
+ }
+}
diff --git a/testproject/Assets/Scripts/NetworkObjectLabel.cs.meta b/testproject/Assets/Scripts/NetworkObjectLabel.cs.meta
new file mode 100644
index 0000000000..161994de4e
--- /dev/null
+++ b/testproject/Assets/Scripts/NetworkObjectLabel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7b85e388ccb24094d97ef2c46a7ef0d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/testproject/Assets/Tests/Manual/ManualTestsMenu.unity b/testproject/Assets/Tests/Manual/ManualTestsMenu.unity
index c81d1c4367..cfa371e60d 100644
--- a/testproject/Assets/Tests/Manual/ManualTestsMenu.unity
+++ b/testproject/Assets/Tests/Manual/ManualTestsMenu.unity
@@ -914,7 +914,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_SceneMenus:
- - {fileID: 11400000, guid: 660535b6e155b5b4bbede52313fcb32e, type: 2}
- {fileID: 11400000, guid: d8c6d81e6a2574f4aa66a10aeb02f946, type: 2}
- {fileID: 11400000, guid: 50c51a066c0971b49ab65929d5ba9630, type: 2}
- {fileID: 11400000, guid: eb84694ca0950574981c9544bf99a552, type: 2}
diff --git a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs
index 12fd9e752b..cad77d77b0 100644
--- a/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs
+++ b/testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPool.cs
@@ -260,7 +260,7 @@ private GameObject AddNewInstance()
var genericNetworkObjectBehaviour = obj.GetComponent();
genericNetworkObjectBehaviour.HasHandler = EnableHandler;
m_ObjectPool.Add(obj);
- return obj;
+ return m_ObjectPool[m_ObjectPool.Count - 1];
}
///
diff --git a/testproject/ProjectSettings/EditorBuildSettings.asset b/testproject/ProjectSettings/EditorBuildSettings.asset
index 2c568d76ed..019bfe7fbe 100644
--- a/testproject/ProjectSettings/EditorBuildSettings.asset
+++ b/testproject/ProjectSettings/EditorBuildSettings.asset
@@ -51,6 +51,9 @@ EditorBuildSettings:
path: Assets/Scenes/EmptyScene.unity
guid: a2545a872c007404fbb6b0393ab74974
- enabled: 1
- path: Assets/Tests/Manual/PrefabPool/PrefabPoolExample.unity
+ path: Assets/Samples/PrefabPool/PrefabPoolExample.unity
guid: e4732b28c18f52c4dbe06c8a37f7997f
+ - enabled: 1
+ path: Assets/Samples/PrefabPool/PrefabPoolOverrideExample.unity
+ guid: 8c9bee1332e0526429d8a2c929945d60
m_configObjects: {}