Fixed null exceptions and added loot boxes
This commit is contained in:
parent
1fa07220c1
commit
5e269331e3
@ -1690,6 +1690,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -1766,6 +1770,10 @@ PrefabInstance:
|
||||
propertyPath: m_RootOrder
|
||||
value: 10
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5990956033835523603, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Flags
|
||||
value: 262145
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5990956033835523603, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: AoiMode
|
||||
value: 0
|
||||
@ -1900,7 +1908,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -2890,6 +2890,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -3096,7 +3100,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -2150,6 +2150,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -2364,7 +2368,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -2150,6 +2150,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -2364,7 +2368,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -1644,6 +1644,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -1858,7 +1862,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -1644,6 +1644,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -1818,7 +1822,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -2482,6 +2482,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -2628,7 +2632,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7625200539080901463, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: ChillGuy 1
|
||||
value: Pepe
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7669839113013824676, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Flags
|
||||
|
@ -1690,6 +1690,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -1864,7 +1868,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6749243822846010147, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6948698316688109637, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Flags
|
||||
@ -1904,7 +1908,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
@ -1598,6 +1598,10 @@ PrefabInstance:
|
||||
propertyPath: SortKey
|
||||
value: 4136410934
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Config
|
||||
value: -1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1018819908989435078, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: Offset.y
|
||||
value: 0
|
||||
@ -1804,7 +1808,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _initialWeapons.Array.size
|
||||
value: 2
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8019168302190258968, guid: c17b47fcacdfc8d4b80809005a2b2555, type: 3}
|
||||
propertyPath: _slots.Array.data[0].Active
|
||||
|
8
Assets/SceneTemplateAssets.meta
Normal file
8
Assets/SceneTemplateAssets.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f80dbc813e993664fb6cbf972e47f10a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/SceneTemplateAssets/Common.meta
Normal file
8
Assets/SceneTemplateAssets/Common.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac0f2af311e310c4486c6e996c692163
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/SceneTemplateAssets/Common/Models.meta
Normal file
8
Assets/SceneTemplateAssets/Common/Models.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 681799fc6f6442b44bfd06dda6f9737c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/SceneTemplateAssets/Common/Models/UnityMaterialBall.fbx
Normal file
BIN
Assets/SceneTemplateAssets/Common/Models/UnityMaterialBall.fbx
Normal file
Binary file not shown.
@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dbf213621aa684e458812b1232360659
|
||||
ModelImporter:
|
||||
serializedVersion: 22102
|
||||
internalIDToNameTable: []
|
||||
externalObjects:
|
||||
- first:
|
||||
type: UnityEngine:Material
|
||||
assembly: UnityEngine.CoreModule
|
||||
name: 10 - Default
|
||||
second: {fileID: 2100000, guid: e0f7961861aa5ae4a97805f16f8306b7, type: 2}
|
||||
materials:
|
||||
materialImportMode: 0
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 0
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -262,6 +262,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@ -435,6 +438,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@ -514,6 +520,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 25689a0a2c93b2a4b8bbf4420b12d6c7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_stateAuthorityChangeErrorCorrectionDelta: 0.15
|
||||
_autoCloseTime: 25
|
||||
_unlockTime: 40
|
||||
_startState: 1
|
||||
@ -541,11 +548,9 @@ MonoBehaviour:
|
||||
Probability: 30
|
||||
- Pickup: {fileID: 6715959599694521071, guid: 0a542ea6c4d73284696f38edbd148a59, type: 3}
|
||||
Probability: 30
|
||||
- Pickup: {fileID: 644603425118098869, guid: c750a29126ddfd7488f13f77091ed1aa, type: 3}
|
||||
Probability: 30
|
||||
- Pickup: {fileID: 2715304033126495746, guid: 1d7da68e9c437244a94b4a3d6bafb095, type: 3}
|
||||
Probability: 30
|
||||
- Pickup: {fileID: 1450828408321133776, guid: 9e99cf4e2146b094abd90b7dccd1cdf8, type: 3}
|
||||
- Pickup: {fileID: 644603425118098869, guid: c750a29126ddfd7488f13f77091ed1aa, type: 3}
|
||||
Probability: 30
|
||||
- Pickup: {fileID: 8389084916135308144, guid: fa21fb8dc9db56f4fb9089135a6973f2, type: 3}
|
||||
Probability: 30
|
||||
@ -598,10 +603,11 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
SortKey: 3661375754
|
||||
ObjectInterest: 0
|
||||
Flags: 264449
|
||||
Flags: 264705
|
||||
NestedObjects: []
|
||||
NetworkedBehaviours:
|
||||
- {fileID: 1708100450960633986}
|
||||
ForceRemoteRenderTimeframe: 0
|
||||
--- !u!111 &1708100450960633996
|
||||
Animation:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -610,7 +616,7 @@ Animation:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1708100450960633998}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Animation: {fileID: 7400000, guid: d33e238ef847604449df19bfcc23ce3c, type: 2}
|
||||
m_Animations:
|
||||
- {fileID: 7400000, guid: 38dfd97675fad834291a91d2a564f655, type: 2}
|
||||
@ -618,6 +624,7 @@ Animation:
|
||||
m_WrapMode: 0
|
||||
m_PlayAutomatically: 0
|
||||
m_AnimatePhysics: 0
|
||||
m_UpdateMode: 0
|
||||
m_CullingType: 0
|
||||
--- !u!65 &1708100450960633985
|
||||
BoxCollider:
|
||||
@ -730,6 +737,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@ -971,6 +981,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
@ -1071,6 +1084,7 @@ AudioSource:
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 243265986909122044, guid: 5fe66330c489e4544ba809ba6cc86e2b, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
@ -1285,6 +1299,9 @@ MeshRenderer:
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
|
@ -13,16 +13,6 @@ MonoBehaviour:
|
||||
m_Name: AgentSettings
|
||||
m_EditorClassIdentifier:
|
||||
_agents:
|
||||
- _id: Agent.Chill
|
||||
_displayName: Chill Guy 69
|
||||
_description: Nobody knows where Soldier 66 came from. There are rumors that
|
||||
he was a high profile hitman before undergoing a series of experimental operations
|
||||
to become half human and half machine. He is famous for not following any sort
|
||||
of rules which makes him particularly dangerous... thing.
|
||||
_icon: {fileID: 21300000, guid: 7db05483dc3839c4883ca3e2b66df14d, type: 3}
|
||||
_agentPrefab:
|
||||
RawGuidValue: 93ce630958493824d9666ef32598805a
|
||||
_menuAgentPrefab: {fileID: 2529299778790674133, guid: 4d7cd885811c2de41929ce728130362a, type: 3}
|
||||
- _id: Agent.Murica
|
||||
_displayName: Agent Murica
|
||||
_description: Nobody knows where Soldier 66 came from. There are rumors that
|
||||
@ -33,6 +23,16 @@ MonoBehaviour:
|
||||
_agentPrefab:
|
||||
RawGuidValue: 25bcc93b9af98714db0c016d73cdf473
|
||||
_menuAgentPrefab: {fileID: 2529299778790674133, guid: c9914cf34da803d49b5e31f50065d2a8, type: 3}
|
||||
- _id: Agent.Chill
|
||||
_displayName: Chill Guy 69
|
||||
_description: Nobody knows where Soldier 66 came from. There are rumors that
|
||||
he was a high profile hitman before undergoing a series of experimental operations
|
||||
to become half human and half machine. He is famous for not following any sort
|
||||
of rules which makes him particularly dangerous... thing.
|
||||
_icon: {fileID: 21300000, guid: 7db05483dc3839c4883ca3e2b66df14d, type: 3}
|
||||
_agentPrefab:
|
||||
RawGuidValue: 93ce630958493824d9666ef32598805a
|
||||
_menuAgentPrefab: {fileID: 2529299778790674133, guid: 4d7cd885811c2de41929ce728130362a, type: 3}
|
||||
- _id: Agent.Giga
|
||||
_displayName: Agent Giga
|
||||
_description: Nobody knows where Soldier 66 came from. There are rumors that
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using DG.Tweening;
|
||||
using Fusion;
|
||||
using UnityEngine;
|
||||
|
||||
@ -137,7 +138,7 @@ namespace TPSBR
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
_nestedPickups = new StaticPickup[_pickupsSetup.Length];
|
||||
|
||||
switch (_startState)
|
||||
@ -230,6 +231,7 @@ namespace TPSBR
|
||||
if (_localState == BoxState)
|
||||
return;
|
||||
|
||||
|
||||
_localState = BoxState;
|
||||
|
||||
_lockedState.SetActive(_localState == EState.Locked);
|
||||
|
108
Assets/TPSBR/Scripts/Gameplay/Interactions/LootBoxSpawner.cs
Normal file
108
Assets/TPSBR/Scripts/Gameplay/Interactions/LootBoxSpawner.cs
Normal file
@ -0,0 +1,108 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Fusion;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TPSBR
|
||||
{
|
||||
public sealed class LootBoxSpawner : NetworkBehaviour
|
||||
{
|
||||
[Header("Prefab")]
|
||||
[SerializeField] private NetworkPrefabRef _itemBoxPrefab;
|
||||
|
||||
[Header("Placement")]
|
||||
[Min(1)] [SerializeField] private int _count = 10;
|
||||
[Min(0f)] [SerializeField] private float _radius = 40f;
|
||||
[Min(0f)] [SerializeField] private float _minSpacing = 3f;
|
||||
[SerializeField] private LayerMask _groundMask = ~0;
|
||||
[SerializeField] private float _raycastUp = 60f;
|
||||
[SerializeField] private float _raycastDown = 120f;
|
||||
[SerializeField] private uint _seed = 12345;
|
||||
[SerializeField] private bool _randomYaw = true;
|
||||
|
||||
// Keep references to despawn/respawn later if you extend it
|
||||
private readonly List<NetworkObject> _spawned = new();
|
||||
|
||||
public override void Spawned()
|
||||
{
|
||||
if (!HasStateAuthority) return;
|
||||
SpawnAll();
|
||||
}
|
||||
|
||||
private void SpawnAll()
|
||||
{
|
||||
// If this is re-entered (e.g., soft reset), clean previous
|
||||
foreach (var no in _spawned)
|
||||
if (no && no.IsValid) Runner.Despawn(no);
|
||||
_spawned.Clear();
|
||||
|
||||
var rnd = new System.Random(unchecked((int)_seed));
|
||||
var positions = SamplePositions(transform.position, _radius, _count, _minSpacing, rnd);
|
||||
|
||||
foreach (var p in positions)
|
||||
{
|
||||
var rot = _randomYaw ? Quaternion.Euler(0f, (float)rnd.NextDouble() * 360f, 0f) : Quaternion.identity;
|
||||
// Spawn server-side; replicated to all clients
|
||||
var obj = Runner.Spawn(_itemBoxPrefab, p, rot);
|
||||
_spawned.Add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
// Deterministic sampling inside a circle with ground projection + spacing
|
||||
private List<Vector3> SamplePositions(Vector3 center, float radius, int count, float minSpacing, System.Random rnd)
|
||||
{
|
||||
var results = new List<Vector3>(count);
|
||||
var maxTrials = 2500; // generous to pack in cluttered areas
|
||||
int trials = 0;
|
||||
|
||||
while (results.Count < count && trials++ < maxTrials)
|
||||
{
|
||||
// pick point in disc (sqrt for uniform)
|
||||
float r = radius * Mathf.Sqrt((float)rnd.NextDouble());
|
||||
float ang = Mathf.PI * 2f * (float)rnd.NextDouble();
|
||||
Vector3 local = new Vector3(Mathf.Cos(ang) * r, 0f, Mathf.Sin(ang) * r);
|
||||
Vector3 rayFrom = center + local + Vector3.up * _raycastUp;
|
||||
|
||||
if (Physics.Raycast(rayFrom, Vector3.down, out var hit, _raycastUp + _raycastDown, _groundMask, QueryTriggerInteraction.Ignore))
|
||||
{
|
||||
var pos = hit.point;
|
||||
|
||||
// spacing test
|
||||
bool ok = true;
|
||||
if (minSpacing > 0f)
|
||||
{
|
||||
for (int i = 0; i < results.Count; i++)
|
||||
{
|
||||
if (Vector3.SqrMagnitude(results[i] - pos) < minSpacing * minSpacing) { ok = false; break; }
|
||||
}
|
||||
}
|
||||
|
||||
if (ok) results.Add(pos);
|
||||
}
|
||||
}
|
||||
|
||||
if (results.Count < count)
|
||||
Debug.LogWarning($"[LootBoxSpawner] Only placed {results.Count}/{count}. Increase radius or lower spacing.");
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
// Scene gizmo previews the exact deterministic layout you’ll get at runtime
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = new Color(0.1f, 0.8f, 1f, 0.25f);
|
||||
Gizmos.DrawWireSphere(transform.position, _radius);
|
||||
|
||||
// preview sample using same seed
|
||||
var rnd = new System.Random(unchecked((int)_seed));
|
||||
var preview = SamplePositions(transform.position, _radius, _count, _minSpacing, rnd);
|
||||
|
||||
Gizmos.color = new Color(0.1f, 0.8f, 1f, 0.7f);
|
||||
foreach (var p in preview)
|
||||
{
|
||||
Gizmos.DrawSphere(p + Vector3.up * 0.15f, 0.25f);
|
||||
Gizmos.DrawLine(p + Vector3.up * 3f, p); // drop line
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b89277a4df943284bbfe0a4bd18697d3
|
Loading…
x
Reference in New Issue
Block a user