This commit is contained in:
2025-06-16 15:14:23 +02:00
commit 074e590073
3174 changed files with 428263 additions and 0 deletions

View File

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

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Ball
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 1, g: 0, b: 0, a: 0.7529412}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: adaf49450caebb24c9a21448fba27322
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Materials/Ball.mat
uploadId: 736421

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Bat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 0, g: 0, b: 1, a: 0.7529412}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 9668485f4f34ae3458ccb76195eb127e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Materials/Bat.mat
uploadId: 736421

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!134 &13400000
PhysicMaterial:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Bouncy
dynamicFriction: 0.6
staticFriction: 0.6
bounciness: 1
frictionCombine: 0
bounceCombine: 0

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: fc53950f3f182fc46bf014d257267e86
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Materials/Bouncy.physicMaterial
uploadId: 736421

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Box
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 0, g: 1, b: 0, a: 0.7529412}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 8f7d52257ab326949bc5715d14415e21
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Materials/Box.mat
uploadId: 736421

View File

@ -0,0 +1,689 @@
%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: 11
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_UseShadowmask: 1
--- !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
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &94711024
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 94711028}
- component: {fileID: 94711027}
- component: {fileID: 94711026}
- component: {fileID: 94711025}
m_Layer: 0
m_Name: Network
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &94711025
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 94711024}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b0fecffa3f624585964b0d0eb21b18e, type: 3}
m_Name:
m_EditorClassIdentifier:
port: 7777
DualMode: 1
NoDelay: 1
Interval: 10
Timeout: 10000
RecvBufferSize: 7361536
SendBufferSize: 7361536
FastResend: 2
ReceiveWindowSize: 4096
SendWindowSize: 4096
MaxRetransmit: 40
MaximizeSocketBuffers: 1
ReliableMaxMessageSize: 297433
UnreliableMaxMessageSize: 1194
debugLog: 0
statisticsGUI: 0
statisticsLog: 0
--- !u!114 &94711026
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 94711024}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8aab4c8111b7c411b9b92cf3dbc5bd4e, type: 3}
m_Name:
m_EditorClassIdentifier:
dontDestroyOnLoad: 0
runInBackground: 1
headlessStartMode: 0
editorAutoStart: 0
sendRate: 60
offlineScene:
onlineScene:
offlineSceneLoadDelay: 0
transport: {fileID: 94711025}
networkAddress: localhost
maxConnections: 2
disconnectInactiveConnections: 0
disconnectInactiveTimeout: 60
authenticator: {fileID: 0}
playerPrefab: {fileID: 7267698107325001584, guid: 0a718236edc07af46a9f3ebb74fd1e45,
type: 3}
autoCreatePlayer: 1
playerSpawnMethod: 1
spawnPrefabs:
- {fileID: 8373046805013990044, guid: 41c6c51270a8bab40b39ca7962e9ac6c, type: 3}
exceptionsDisconnect: 1
snapshotSettings:
bufferTimeMultiplier: 2
bufferLimit: 32
catchupNegativeThreshold: -1
catchupPositiveThreshold: 1
catchupSpeed: 0.019999999552965164
slowdownSpeed: 0.03999999910593033
driftEmaDuration: 1
dynamicAdjustment: 1
dynamicAdjustmentTolerance: 1
deliveryTimeEmaDuration: 2
evaluationMethod: 0
evaluationInterval: 3
timeInterpolationGui: 0
--- !u!114 &94711027
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 94711024}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6442dc8070ceb41f094e44de0bf87274, type: 3}
m_Name:
m_EditorClassIdentifier:
offsetX: 0
offsetY: 0
--- !u!4 &94711028
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 94711024}
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: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &208991617
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 208991619}
- component: {fileID: 208991618}
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 &208991618
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 208991617}
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: 0.5
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_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &208991619
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 208991617}
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!1 &992559145
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 992559146}
- component: {fileID: 992559147}
m_Layer: 0
m_Name: SpawnPoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &992559146
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 992559145}
m_LocalRotation: {x: 0, y: -0.8191521, z: 0, w: 0.57357645}
m_LocalPosition: {x: 1.2, y: 0, z: 1.8}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1087861736}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: -110, z: 0}
--- !u!114 &992559147
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 992559145}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 41f84591ce72545258ea98cb7518d8b9, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1054605962
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1054605970}
- component: {fileID: 1054605969}
- component: {fileID: 1054605968}
- component: {fileID: 1054605967}
- component: {fileID: 1054605966}
- component: {fileID: 1054605965}
- component: {fileID: 1054605964}
- component: {fileID: 1054605963}
m_Layer: 0
m_Name: Ground
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &1054605963
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Material: {fileID: 13400000, guid: 2e179c076d5d0924dbf5a2de0630bdb1, type: 2}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 10, y: 8, z: 0.1}
m_Center: {x: 0, y: 4, z: 5}
--- !u!65 &1054605964
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Material: {fileID: 13400000, guid: 2e179c076d5d0924dbf5a2de0630bdb1, type: 2}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 10, y: 8, z: 0.1}
m_Center: {x: 0, y: 4, z: -5}
--- !u!65 &1054605965
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Material: {fileID: 13400000, guid: 2e179c076d5d0924dbf5a2de0630bdb1, type: 2}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.1, y: 8, z: 10}
m_Center: {x: 5, y: 4, z: 0}
--- !u!65 &1054605966
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Material: {fileID: 13400000, guid: 2e179c076d5d0924dbf5a2de0630bdb1, type: 2}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.1, y: 8, z: 10}
m_Center: {x: -5, y: 4, z: 0}
--- !u!64 &1054605967
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 4
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1054605968
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 4294967295
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 29b49c27a74f145918356859bd7af511, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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
--- !u!33 &1054605969
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1054605970
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1054605962}
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: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1087861735
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1087861736}
m_Layer: 0
m_Name: Spawns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1087861736
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1087861735}
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: 1089501590}
- {fileID: 992559146}
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1089501589
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1089501590}
- component: {fileID: 1089501591}
m_Layer: 0
m_Name: SpawnPoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1089501590
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1089501589}
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: 1087861736}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1089501591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1089501589}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 41f84591ce72545258ea98cb7518d8b9, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1571122690
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1571122693}
- component: {fileID: 1571122692}
- component: {fileID: 1571122691}
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 &1571122691
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1571122690}
m_Enabled: 1
--- !u!20 &1571122692
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1571122690}
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 &1571122693
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1571122690}
m_LocalRotation: {x: 0.082733236, y: 0.87608653, z: -0.16237308, w: 0.4463885}
m_LocalPosition: {x: -1.75, y: 1.75, z: 2.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 21, y: 126, z: 0}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 2c26d69f5818f514b9504823866eb714
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/PickupsDropsChilds.unity
uploadId: 736421

View File

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

View File

@ -0,0 +1,113 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8563961762736836479
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2514976982203398345}
- component: {fileID: 3931461905408337052}
- component: {fileID: 8816421123151447550}
- component: {fileID: 2282336819389290131}
- component: {fileID: 3101286015668960884}
m_Layer: 0
m_Name: Ball
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2514976982203398345
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8563961762736836479}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.05, y: 0, z: 0}
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3931461905408337052
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8563961762736836479}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8816421123151447550
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8563961762736836479}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: adaf49450caebb24c9a21448fba27322, 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
--- !u!135 &2282336819389290131
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8563961762736836479}
m_Material: {fileID: 13400000, guid: fc53950f3f182fc46bf014d257267e86, type: 2}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &3101286015668960884
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8563961762736836479}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 65881ca9607b5ea42b654a7ed2566027, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 0}
audioSource: {fileID: 0}
_equippedItemConfig:
usages: 3
maxUsages: 3

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 90446831fd6fe7f43ae80c6fb7cb7a0d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/Ball.prefab
uploadId: 736421

View File

@ -0,0 +1,114 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6507540558446839548
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3787812930148627994}
- component: {fileID: 3504059701668173685}
- component: {fileID: 108821253780875606}
- component: {fileID: 4059421314684294317}
- component: {fileID: 2932435609801465612}
m_Layer: 0
m_Name: Bat
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3787812930148627994
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6507540558446839548}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.025, y: 0.1, z: 0}
m_LocalScale: {x: 0.05, y: 0.2, z: 0.05}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3504059701668173685
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6507540558446839548}
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &108821253780875606
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6507540558446839548}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 9668485f4f34ae3458ccb76195eb127e, 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
--- !u!136 &4059421314684294317
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6507540558446839548}
m_Material: {fileID: 13400000, guid: fc53950f3f182fc46bf014d257267e86, type: 2}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.5000001
m_Height: 2
m_Direction: 1
m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
--- !u!114 &2932435609801465612
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6507540558446839548}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35ca3b53a1e608f46ae9195e9d8cae83, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 0}
audioSource: {fileID: 0}
_equippedItemConfig:
usages: 5
maxUsages: 5

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: b69a433c73f41474da198fa7ef37e343
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/Bat.prefab
uploadId: 736421

View File

@ -0,0 +1,113 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7003386763226572670
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6578597032814738970}
- component: {fileID: 1458399548506219079}
- component: {fileID: 1187531092199536007}
- component: {fileID: 8124180270461561123}
- component: {fileID: -2724179734691180034}
m_Layer: 0
m_Name: Box
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6578597032814738970
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7003386763226572670}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.05, y: 0, z: 0}
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1458399548506219079
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7003386763226572670}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1187531092199536007
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7003386763226572670}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8f7d52257ab326949bc5715d14415e21, 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
--- !u!65 &8124180270461561123
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7003386763226572670}
m_Material: {fileID: 13400000, guid: fc53950f3f182fc46bf014d257267e86, type: 2}
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!114 &-2724179734691180034
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7003386763226572670}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5712a4d15653a184cb34b9c1e044563d, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 0}
audioSource: {fileID: 0}
_equippedItemConfig:
usages: 0
maxUsages: 0

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: a4076fff9676bc243ae6d7d6c08341f3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/Box.prefab
uploadId: 736421

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: e9b60bbc16b5cae499404eb80df64cee
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/Custom Robot Kyle.prefab
uploadId: 736421

View File

@ -0,0 +1,202 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7267698107325001584
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8118198807721490324}
- component: {fileID: 3603714038262613708}
- component: {fileID: 1580898288973620588}
- component: {fileID: 68065165359339619}
m_Layer: 0
m_Name: Player
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8118198807721490324
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7267698107325001584}
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: 4916682024614911618}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3603714038262613708
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7267698107325001584}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
m_Name:
m_EditorClassIdentifier:
sceneId: 0
_assetId: 3652319367
serverOnly: 0
visibility: 0
hasSpawned: 0
--- !u!114 &1580898288973620588
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7267698107325001584}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb266ca5176fd4e438673d08fbb59491, type: 3}
m_Name:
m_EditorClassIdentifier:
syncDirection: 0
syncMode: 0
syncInterval: 0
rightHand: {fileID: 2456063374502268486}
ballPrefab: {fileID: 8563961762736836479, guid: 90446831fd6fe7f43ae80c6fb7cb7a0d,
type: 3}
batPrefab: {fileID: 6507540558446839548, guid: b69a433c73f41474da198fa7ef37e343,
type: 3}
boxPrefab: {fileID: 7003386763226572670, guid: a4076fff9676bc243ae6d7d6c08341f3,
type: 3}
sceneObjectPrefab: {fileID: 8373046805013990044, guid: 41c6c51270a8bab40b39ca7962e9ac6c,
type: 3}
equippedItemConfig:
usages: 0
maxUsages: 0
equippedItem: 0
equippedObject: {fileID: 0}
--- !u!114 &68065165359339619
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7267698107325001584}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8ff3ba0becae47b8b9381191598957c8, type: 3}
m_Name:
m_EditorClassIdentifier:
syncDirection: 1
syncMode: 0
syncInterval: 0
target: {fileID: 8689380772056230370}
syncPosition: 1
syncRotation: 1
syncScale: 0
onlySyncOnChange: 1
compressRotation: 1
interpolatePosition: 1
interpolateRotation: 1
interpolateScale: 0
coordinateSpace: 0
timelineOffset: 1
showGizmos: 0
showOverlay: 0
overlayColor: {r: 0, g: 0, b: 0, a: 0.5}
onlySyncOnChangeCorrectionMultiplier: 2
rotationSensitivity: 0.01
positionPrecision: 0.01
scalePrecision: 0.01
--- !u!1001 &6164506062020045578
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 8118198807721490324}
m_Modifications:
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1276535037085198760, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
propertyPath: m_Name
value: Custom Robot Kyle
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e9b60bbc16b5cae499404eb80df64cee, type: 3}
--- !u!4 &4916682024614911618 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1276535037084972424, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
m_PrefabInstance: {fileID: 6164506062020045578}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2456063374502268486 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 8617929508499776844, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
m_PrefabInstance: {fileID: 6164506062020045578}
m_PrefabAsset: {fileID: 0}
--- !u!4 &8689380772056230370 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3250007233915192040, guid: e9b60bbc16b5cae499404eb80df64cee,
type: 3}
m_PrefabInstance: {fileID: 6164506062020045578}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 0a718236edc07af46a9f3ebb74fd1e45
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/Player.prefab
uploadId: 736421

View File

@ -0,0 +1,130 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8373046805013990044
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2705178458170483237}
- component: {fileID: 8203489863581598428}
- component: {fileID: 6160280515915591101}
- component: {fileID: 3436383402443096375}
- component: {fileID: 6259401778744657634}
m_Layer: 0
m_Name: SceneObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2705178458170483237
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8373046805013990044}
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: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8203489863581598428
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8373046805013990044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
m_Name:
m_EditorClassIdentifier:
sceneId: 0
_assetId: 4218322890
serverOnly: 0
visibility: 0
hasSpawned: 0
--- !u!54 &6160280515915591101
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8373046805013990044}
serializedVersion: 2
m_Mass: 0.8
m_Drag: 0.5
m_AngularDrag: 0.8
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 3
--- !u!114 &3436383402443096375
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8373046805013990044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8ff3ba0becae47b8b9381191598957c8, type: 3}
m_Name:
m_EditorClassIdentifier:
syncDirection: 0
syncMode: 0
syncInterval: 0
target: {fileID: 2705178458170483237}
syncPosition: 1
syncRotation: 1
syncScale: 0
onlySyncOnChange: 1
compressRotation: 1
interpolatePosition: 1
interpolateRotation: 1
interpolateScale: 1
coordinateSpace: 0
timelineOffset: 1
showGizmos: 0
showOverlay: 0
overlayColor: {r: 0, g: 0, b: 0, a: 0.5}
onlySyncOnChangeCorrectionMultiplier: 2
rotationSensitivity: 0.01
positionPrecision: 0.01
scalePrecision: 0.01
--- !u!114 &6259401778744657634
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8373046805013990044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ce6433915d7fc64cb9ffa753e73bf14, type: 3}
m_Name:
m_EditorClassIdentifier:
syncDirection: 0
syncMode: 0
syncInterval: 0
ballPrefab: {fileID: 8563961762736836479, guid: 90446831fd6fe7f43ae80c6fb7cb7a0d,
type: 3}
batPrefab: {fileID: 6507540558446839548, guid: b69a433c73f41474da198fa7ef37e343,
type: 3}
boxPrefab: {fileID: 7003386763226572670, guid: a4076fff9676bc243ae6d7d6c08341f3,
type: 3}
force: 1
equippedItemConfig:
usages: 0
maxUsages: 0
equippedItem: 0
direction: {x: 0, y: 0, z: 0}
equippedObject: {fileID: 0}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 41c6c51270a8bab40b39ca7962e9ac6c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Prefabs/SceneObject.prefab
uploadId: 736421

View File

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

View File

@ -0,0 +1,10 @@
namespace Mirror.Examples.PickupsDropsChilds
{
public enum EquippedItem : byte
{
nothing,
ball,
bat,
box
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 2bfef79b434bc424eacedbe92f3ca7e8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Enumerations.cs
uploadId: 736421

View File

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

View File

@ -0,0 +1,67 @@
using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
public class EquippedBall : MonoBehaviour, IEquipped
{
// Note: This example doesn't include animations or sounds for simplicity.
// These are just here for illustration purposes...the implementation
// methods could do something interesting like play a sound or animation.
[Header("Components")]
public Animator animator;
public AudioSource audioSource;
[Header("Equipped Item")]
[SerializeField]
EquippedItemConfig _equippedItemConfig;
public EquippedItemConfig equippedItemConfig
{
get => _equippedItemConfig;
set
{
Debug.Log($"{transform.root.name} EquippedItemConfig set from {_equippedItemConfig} to {value}", gameObject);
_equippedItemConfig = value;
}
}
void Reset()
{
equippedItemConfig = new EquippedItemConfig { usages = 3, maxUsages = 3 };
}
// Play appropriate animation or sound
public void Use()
{
// Effectively unlimited uses
if (equippedItemConfig.maxUsages == 0)
{
Debug.Log("Ball used");
return;
}
if (equippedItemConfig.usages > 0)
Debug.Log("Ball used");
else
Debug.Log("Ball is out of uses");
}
// Play appropriate animation or sound
public void AddUsages(byte usages)
{
Debug.Log($"Ball added {usages} usages");
}
// Play appropriate animation or sound
public void ResetUsages()
{
Debug.Log("Ball reset");
}
// Play appropriate animation or sound
public void ResetUsages(byte usages)
{
Debug.Log($"Ball reset usages to {usages}");
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 65881ca9607b5ea42b654a7ed2566027
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Interfaces/EquippedBall.cs
uploadId: 736421

View File

@ -0,0 +1,67 @@
using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
public class EquippedBat : MonoBehaviour, IEquipped
{
// Note: This example doesn't include animations or sounds for simplicity.
// These are just here for illustration purposes...the implementation
// methods could do something interesting like play a sound or animation.
[Header("Components")]
public Animator animator;
public AudioSource audioSource;
[Header("Equipped Item")]
[SerializeField]
EquippedItemConfig _equippedItemConfig;
public EquippedItemConfig equippedItemConfig
{
get => _equippedItemConfig;
set
{
Debug.Log($"{transform.root.name} EquippedItemConfig set from {_equippedItemConfig} to {value}", gameObject);
_equippedItemConfig = value;
}
}
void Reset()
{
equippedItemConfig = new EquippedItemConfig { usages = 5, maxUsages = 5 };
}
// Play appropriate animation or sound
public void Use()
{
// Effectively unlimited uses
if (equippedItemConfig.maxUsages == 0)
{
Debug.Log("Bat used");
return;
}
if (equippedItemConfig.usages > 0)
Debug.Log("Bat used");
else
Debug.Log("Bat is out of uses");
}
// Play appropriate animation or sound
public void AddUsages(byte usages)
{
Debug.Log($"Bat added {usages} usages");
}
// Play appropriate animation or sound
public void ResetUsages()
{
Debug.Log("Bat reset");
}
// Play appropriate animation or sound
public void ResetUsages(byte usages)
{
Debug.Log($"Bat reset usages to {usages}");
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 35ca3b53a1e608f46ae9195e9d8cae83
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Interfaces/EquippedBat.cs
uploadId: 736421

View File

@ -0,0 +1,67 @@
using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
public class EquippedBox : MonoBehaviour, IEquipped
{
// Note: This example doesn't include animations or sounds for simplicity.
// These are just here for illustration purposes...the implementation
// methods could do something interesting like play a sound or animation.
[Header("Components")]
public Animator animator;
public AudioSource audioSource;
[Header("Equipped Item")]
[SerializeField]
EquippedItemConfig _equippedItemConfig;
public EquippedItemConfig equippedItemConfig
{
get => _equippedItemConfig;
set
{
Debug.Log($"{transform.root.name} EquippedItemConfig set from {_equippedItemConfig} to {value}", gameObject);
_equippedItemConfig = value;
}
}
void Reset()
{
equippedItemConfig = new EquippedItemConfig { usages = 0, maxUsages = 0 };
}
// Play appropriate animation or sound
public void Use()
{
// Effectively unlimited uses
if (equippedItemConfig.maxUsages == 0)
{
Debug.Log("Box used");
return;
}
if (equippedItemConfig.usages > 0)
Debug.Log("Box used");
else
Debug.Log("Box is out of uses");
}
// Play appropriate animation or sound
public void AddUsages(byte usages)
{
Debug.Log($"Box added {usages} usages");
}
// Play appropriate animation or sound
public void ResetUsages()
{
Debug.Log("Box reset");
}
// Play appropriate animation or sound
public void ResetUsages(byte usages)
{
Debug.Log($"Box reset usages to {usages}");
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5712a4d15653a184cb34b9c1e044563d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Interfaces/EquippedBox.cs
uploadId: 736421

View File

@ -0,0 +1,74 @@
namespace Mirror.Examples.PickupsDropsChilds
{
interface IEquipped
{
EquippedItemConfig equippedItemConfig { get; set; }
void Use();
void AddUsages(byte usages);
void ResetUsages();
void ResetUsages(byte usages);
}
[System.Serializable]
public struct EquippedItemConfig : System.IEquatable<EquippedItemConfig>
{
// Usages remaining...this could be ammo, potion doses, magic item charges, etc.
public byte usages;
// Maximum usages...set to 0 for effectively unlimited uses
public byte maxUsages;
public EquippedItemConfig(byte maxUsages)
{
usages = maxUsages;
this.maxUsages = maxUsages;
}
public EquippedItemConfig(byte usages, byte maxUsages)
{
this.usages = usages;
this.maxUsages = maxUsages;
}
public void Use()
{
// Reset usages to within allowed range in case higher than maxUsages
ResetUsages(usages);
// if we have usages left, decrement
if (usages > 0)
usages--;
}
// Add a specific number of usages
public void AddUsages(byte usages)
{
// Limit usages to maxUsages
this.usages = (byte)Mathd.Clamp(this.usages + usages, 0, maxUsages);
}
// Fully reload to max usages
public void ResetUsages()
{
this.usages = maxUsages;
}
// Reload to a specific number of usages
public void ResetUsages(byte usages)
{
// Limit usages to maxUsages
this.usages = (byte)Mathd.Clamp(usages, 0, maxUsages);
}
public bool Equals(EquippedItemConfig other)
{
return usages == other.usages && maxUsages == other.maxUsages;
}
public override string ToString()
{
return $"EquippedItemConfig[{usages}/{maxUsages}]";
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: b85cf93aed753aa448c8cf58ae3bb79d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/Interfaces/IEquipped.cs
uploadId: 736421

View File

@ -0,0 +1,259 @@
using System.Collections;
using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
public class PickupsDropsChilds : NetworkBehaviour
{
[Header("Player Components")]
public GameObject rightHand;
[Header("Prefabs")]
public GameObject ballPrefab;
public GameObject batPrefab;
public GameObject boxPrefab;
public GameObject sceneObjectPrefab;
// IMPORTANT: Order of SyncVar declarations is intentional!
// ChangeEquipment coroutine depends on equippedItemConfig being set first
// but equippedItemConfig can also be changed independent of equippedItem
// changing, e.g. reloading usages.
[Header("SyncVars in Specific Order")]
[SyncVar(hook = nameof(OnChangeEquippedItemConfig))]
public EquippedItemConfig equippedItemConfig = default;
[SyncVar(hook = nameof(OnChangeEquipment))]
public EquippedItem equippedItem;
[Header("Diagnostics")]
[ReadOnly] public GameObject equippedObject;
// Cached reference to IEquipped component on the child object
IEquipped iEquipped;
void Update()
{
if (!isLocalPlayer) return;
if (Input.GetKeyDown(KeyCode.Alpha0) && equippedItem != EquippedItem.nothing)
CmdChangeEquippedItem(EquippedItem.nothing);
if (Input.GetKeyDown(KeyCode.Alpha1) && equippedItem != EquippedItem.ball)
CmdChangeEquippedItem(EquippedItem.ball);
if (Input.GetKeyDown(KeyCode.Alpha2) && equippedItem != EquippedItem.bat)
CmdChangeEquippedItem(EquippedItem.bat);
if (Input.GetKeyDown(KeyCode.Alpha3) && equippedItem != EquippedItem.box)
CmdChangeEquippedItem(EquippedItem.box);
if (Input.GetKeyDown(KeyCode.U) && iEquipped != null)
CmdUseItem();
if (Input.GetKeyDown(KeyCode.I) && iEquipped != null)
CmdAddUsages(1);
if (Input.GetKeyDown(KeyCode.O) && iEquipped != null)
CmdResetUsages();
if (Input.GetKeyDown(KeyCode.P) && iEquipped != null)
CmdResetUsages(3);
if (Input.GetKeyDown(KeyCode.X) && equippedItem != EquippedItem.nothing)
CmdDropItem();
}
void OnChangeEquippedItemConfig(EquippedItemConfig _, EquippedItemConfig newEquippedItemConfig)
{
// equippedItem may be EquippedItem.nothing so check for not null
// before getting reference to the IEquipped interface component
// and only set the equippedItemConfig if it's different.
if (equippedObject != null && equippedObject.TryGetComponent(out iEquipped))
if (!iEquipped.equippedItemConfig.Equals(equippedItemConfig))
iEquipped.equippedItemConfig = equippedItemConfig;
}
void OnChangeEquipment(EquippedItem _, EquippedItem newEquippedItem)
{
StartCoroutine(ChangeEquipment());
}
// Since Destroy is delayed to the end of the current frame, we use a coroutine
// to clear out any child objects before instantiating the new one
IEnumerator ChangeEquipment()
{
while (rightHand.transform.childCount > 0)
{
Destroy(rightHand.transform.GetChild(0).gameObject);
yield return null;
}
equippedObject = null;
switch (equippedItem)
{
case EquippedItem.ball:
equippedObject = Instantiate(ballPrefab, rightHand.transform);
break;
case EquippedItem.bat:
equippedObject = Instantiate(batPrefab, rightHand.transform);
break;
case EquippedItem.box:
equippedObject = Instantiate(boxPrefab, rightHand.transform);
break;
}
// equippedItem may be EquippedItem.nothing so check for not null
// before getting reference to the IEquipped interface component
// and only set the equippedItemConfig if it's different.
if (equippedObject != null && equippedObject.TryGetComponent(out iEquipped))
if (!iEquipped.equippedItemConfig.Equals(equippedItemConfig))
iEquipped.equippedItemConfig = equippedItemConfig;
}
[Command]
void CmdChangeEquippedItem(EquippedItem selectedItem)
{
switch (selectedItem)
{
case EquippedItem.ball:
if (ballPrefab.TryGetComponent(out IEquipped ball))
equippedItemConfig = ball.equippedItemConfig;
break;
case EquippedItem.bat:
if (batPrefab.TryGetComponent(out IEquipped bat))
equippedItemConfig = bat.equippedItemConfig;
break;
case EquippedItem.box:
if (boxPrefab.TryGetComponent(out IEquipped box))
equippedItemConfig = box.equippedItemConfig;
break;
case EquippedItem.nothing:
equippedItemConfig = default;
break;
}
equippedItem = selectedItem;
}
[Command]
public void CmdUseItem()
{
// equippedItemConfig is a struct SyncVar so this
// is how to update it correctly on the server.
EquippedItemConfig config = equippedItemConfig;
config.Use();
equippedItemConfig = config;
// tell clients to invoke the Use method on the IEquipped object
RpcUseItem();
}
[Command]
public void CmdAddUsages(byte usages)
{
// equippedItemConfig is a struct SyncVar so this
// is how to update it correctly on the server.
EquippedItemConfig config = equippedItemConfig;
config.AddUsages(usages);
equippedItemConfig = config;
// tell clients to invoke the AddUsages method on the IEquipped object
RpcAddUsages(usages);
}
[Command]
public void CmdResetUsages()
{
// equippedItemConfig is a struct SyncVar so this
// is how to update it correctly on the server.
EquippedItemConfig config = equippedItemConfig;
config.ResetUsages();
equippedItemConfig = config;
// tell clients to invoke the ResetUsages method on the IEquipped object
RpcResetUsages();
}
[Command]
public void CmdResetUsages(byte usages)
{
// equippedItemConfig is a struct SyncVar so this
// is how to update it correctly on the server.
EquippedItemConfig config = equippedItemConfig;
config.ResetUsages(usages);
equippedItemConfig = config;
// tell clients to invoke the ResetUsages method on the IEquipped object
RpcResetUsages(usages);
}
[Command]
void CmdDropItem()
{
// Instantiate the scene object on the server
Vector3 pos = rightHand.transform.position;
Quaternion rot = rightHand.transform.rotation;
equippedObject = Instantiate(sceneObjectPrefab, pos, rot);
// set the RigidBody as non-kinematic on the server only (isKinematic = true in prefab)
equippedObject.GetComponent<Rigidbody>().isKinematic = false;
SceneObject sceneObject = equippedObject.GetComponent<SceneObject>();
// set the SyncVar on the scene object for clients to instantiate
sceneObject.equippedItem = equippedItem;
// set the equippedItemConfig for the iEquipped interface
sceneObject.equippedItemConfig = equippedItemConfig;
// set the direction to launch the scene object
sceneObject.direction = rightHand.transform.forward;
// Spawn the scene object on the network for all to see
NetworkServer.Spawn(equippedObject);
// set the player's SyncVar to nothing so clients will destroy the iEquipped child item
equippedItem = EquippedItem.nothing;
equippedItemConfig = default;
}
// public because it's called from a script on the SceneObject
[Command]
public void CmdPickupItem(GameObject obj)
{
if (obj.TryGetComponent(out SceneObject sceneObject))
{
// set the player's SyncVar so clients can show the iEquipped item
equippedItem = sceneObject.equippedItem;
// set the equippedItemConfig on the iEquipped object
equippedItemConfig = sceneObject.equippedItemConfig;
}
// Destroy the scene object
NetworkServer.Destroy(obj);
}
[ClientRpc]
public void RpcUseItem()
{
// iEquipped could be null so use the null conditional operator
iEquipped?.Use();
}
[ClientRpc]
public void RpcAddUsages(byte usages)
{
// iEquipped could be null so use the null conditional operator
iEquipped?.AddUsages(usages);
}
[ClientRpc]
public void RpcResetUsages()
{
// iEquipped could be null so use the null conditional operator
iEquipped?.ResetUsages();
}
[ClientRpc]
public void RpcResetUsages(byte usages)
{
// iEquipped could be null so use the null conditional operator
iEquipped?.ResetUsages(usages);
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: cb266ca5176fd4e438673d08fbb59491
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/PickupsDropsChilds.cs
uploadId: 736421

View File

@ -0,0 +1,108 @@
using System.Collections;
using UnityEngine;
namespace Mirror.Examples.PickupsDropsChilds
{
[RequireComponent(typeof(Rigidbody))]
public class SceneObject : NetworkBehaviour
{
[Header("Prefabs")]
public GameObject ballPrefab;
public GameObject batPrefab;
public GameObject boxPrefab;
[Header("Settings")]
[Range(0, 5)] public float force = 1;
// IMPORTANT: Order of SyncVar declarations is intentional!
// ChangeEquipment coroutine depends on equippedItemConfig being set first
// but equippedItemConfig can also be changed independent of equippedItem
// changing, e.g. reloading usages.
[Header("SyncVars in Specific Order")]
[SyncVar(hook = nameof(OnChangeEquippedItemConfig))]
public EquippedItemConfig equippedItemConfig = default;
[SyncVar(hook = nameof(OnChangeEquipment))]
public EquippedItem equippedItem;
[Header("Diagnostics")]
[ReadOnly] public GameObject equippedObject;
[ReadOnly] public Vector3 direction;
// Cached reference to IEquipped component on the child object
[ReadOnly, SerializeField] IEquipped iEquipped;
protected override void OnValidate()
{
if (Application.isPlaying) return;
base.OnValidate();
if (TryGetComponent(out Rigidbody rb))
rb.isKinematic = true;
if (TryGetComponent(out NetworkTransformBase nt))
nt.syncDirection = SyncDirection.ServerToClient;
}
public override void OnStartServer()
{
if (TryGetComponent(out Rigidbody rb))
{
rb.isKinematic = false;
rb.AddForce(direction * force, ForceMode.Impulse);
}
}
void OnMouseDown()
{
NetworkClient.localPlayer.GetComponent<PickupsDropsChilds>().CmdPickupItem(gameObject);
}
void OnChangeEquippedItemConfig(EquippedItemConfig _, EquippedItemConfig newEquippedItemConfig)
{
// equippedItem may be EquippedItem.nothing so check for not null
// before getting reference to the IEquipped interface component
if (equippedObject != null && equippedObject.TryGetComponent(out iEquipped))
if (!iEquipped.equippedItemConfig.Equals(equippedItemConfig))
iEquipped.equippedItemConfig = equippedItemConfig;
}
void OnChangeEquipment(EquippedItem _, EquippedItem newEquippedItem)
{
StartCoroutine(ChangeEquipment());
}
// Since Destroy is delayed to the end of the current frame, we use a coroutine
// to clear out any child objects before instantiating the new one
IEnumerator ChangeEquipment()
{
while (transform.childCount > 0)
{
Destroy(transform.GetChild(0).gameObject);
yield return null;
}
equippedObject = null;
switch (equippedItem)
{
case EquippedItem.ball:
equippedObject = Instantiate(ballPrefab, transform);
break;
case EquippedItem.bat:
equippedObject = Instantiate(batPrefab, transform);
break;
case EquippedItem.box:
equippedObject = Instantiate(boxPrefab, transform);
break;
}
// equippedItem may be EquippedItem.nothing so check for not null
// before getting reference to the IEquipped interface component
// and only set the equippedItemConfig if it's different.
if (equippedObject != null && equippedObject.TryGetComponent(out iEquipped))
if (!iEquipped.equippedItemConfig.Equals(equippedItemConfig))
iEquipped.equippedItemConfig = equippedItemConfig;
}
}
}

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5ce6433915d7fc64cb9ffa753e73bf14
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 129321
packageName: Mirror
packageVersion: 96.0.1
assetPath: Assets/Mirror/Examples/PickupsDropsChilds/Scripts/SceneObject.cs
uploadId: 736421