tool system with switching

This commit is contained in:
2026-03-25 17:58:18 -05:00
parent 17ed6ba3cb
commit 40af32939e
8 changed files with 727 additions and 44 deletions
+605 -23
View File
@@ -1,5 +1,38 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &1023268663229779293
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6581087177990818461}
m_Layer: 0
m_Name: Hand
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6581087177990818461
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1023268663229779293}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 1.083}
m_LocalScale: {x: 6.6666665, y: 2.2222223, z: 6.6666665}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6959836037467520223}
- {fileID: 7557613548437949332}
m_Father: {fileID: 5056434560497563343}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1125603919066053951 --- !u!1 &1125603919066053951
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -9,6 +42,8 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 6959836037467520223} - component: {fileID: 6959836037467520223}
- component: {fileID: 948123141231275876}
- component: {fileID: 4827837832244238221}
m_Layer: 0 m_Layer: 0
m_Name: Shovel m_Name: Shovel
m_TagString: Untagged m_TagString: Untagged
@@ -25,13 +60,57 @@ Transform:
m_GameObject: {fileID: 1125603919066053951} m_GameObject: {fileID: 1125603919066053951}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.036, z: 1.2} m_LocalPosition: {x: 0, y: 0.016199952, z: 0.01755007}
m_LocalScale: {x: 1, y: 0.33333334, z: 1} m_LocalScale: {x: 0.15, y: 0.14999999, z: 0.15}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 5087686311669304310} - {fileID: 5087686311669304310}
m_Father: {fileID: 5056434560497563343} - {fileID: 2468530988803718223}
m_Father: {fileID: 6581087177990818461}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &948123141231275876
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1125603919066053951}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 21ea1f4973209f34aa1bfb2f1dda5454, type: 3}
m_Name:
m_EditorClassIdentifier:
useTimeSec: 0
altUseTimeSec: 0
inUse: 0
shovelAnimator: {fileID: 5869871001686353059}
--- !u!54 &4827837832244238221
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1125603919066053951}
serializedVersion: 5
m_Mass: 1
m_LinearDamping: 0
m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1 &1916516550038109929 --- !u!1 &1916516550038109929
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -135,7 +214,6 @@ GameObject:
- component: {fileID: 5585783075348051809} - component: {fileID: 5585783075348051809}
- component: {fileID: 670108961065253884} - component: {fileID: 670108961065253884}
- component: {fileID: 5869871001686353059} - component: {fileID: 5869871001686353059}
- component: {fileID: 1217545746741926108}
m_Layer: 0 m_Layer: 0
m_Name: Graphics m_Name: Graphics
m_TagString: Shovel m_TagString: Shovel
@@ -259,19 +337,6 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1 m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0 m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0 m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1217545746741926108
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3190285794953641333}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 21ea1f4973209f34aa1bfb2f1dda5454, type: 3}
m_Name:
m_EditorClassIdentifier:
shovelAnimator: {fileID: 5869871001686353059}
--- !u!1 &4277011611965729865 --- !u!1 &4277011611965729865
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -298,11 +363,11 @@ Transform:
m_GameObject: {fileID: 4277011611965729865} m_GameObject: {fileID: 4277011611965729865}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2.27} m_LocalPosition: {x: 0, y: -0.10800043, z: 1.0700003}
m_LocalScale: {x: 6.6666665, y: 2.2222223, z: 6.6666665} m_LocalScale: {x: 6.666666, y: 6.666666, z: 6.666666}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 5056434560497563343} m_Father: {fileID: 6959836037467520223}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7817425351971793234 --- !u!114 &7817425351971793234
MonoBehaviour: MonoBehaviour:
@@ -364,6 +429,297 @@ Transform:
- {fileID: 6872729306491234319} - {fileID: 6872729306491234319}
m_Father: {fileID: 5526037850913171920} m_Father: {fileID: 5526037850913171920}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &4399772550338401164
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3607049389377970013}
- component: {fileID: 4750294420236449561}
- component: {fileID: 3242203504905187101}
- component: {fileID: 4995711197384224017}
m_Layer: 0
m_Name: body
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3607049389377970013
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4399772550338401164}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.09949005, y: -0.05806017, z: -0.035559893}
m_LocalScale: {x: 0.32688943, y: 0.11612, z: 0.11612}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7557613548437949332}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &4750294420236449561
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4399772550338401164}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3242203504905187101
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4399772550338401164}
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_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &4995711197384224017
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4399772550338401164}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &4520988229109227435
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7557613548437949332}
- component: {fileID: 2884873557578242522}
m_Layer: 0
m_Name: Flashlight
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &7557613548437949332
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4520988229109227435}
serializedVersion: 2
m_LocalRotation: {x: -0, y: 0.6899884, z: -0, w: 0.72382045}
m_LocalPosition: {x: -0.091, y: 0.074, z: -0.027511}
m_LocalScale: {x: 0.51386, y: 0.51386, z: 0.51386}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3607049389377970013}
- {fileID: 8289196538023342208}
- {fileID: 7936160325569085957}
- {fileID: 892315111995737186}
m_Father: {fileID: 6581087177990818461}
m_LocalEulerAnglesHint: {x: 0, y: 87.258, z: 0}
--- !u!114 &2884873557578242522
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4520988229109227435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: edd0364a446d1fd489dd8bbb53de613a, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Flashlight
useTimeSec: 0
altUseTimeSec: 0
inUse: 0
lightSrc: {fileID: 2715587763268303228}
--- !u!1 &4672178086213347511
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8289196538023342208}
- component: {fileID: 2715587763268303228}
- component: {fileID: 7534668295693810183}
m_Layer: 0
m_Name: Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8289196538023342208
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4672178086213347511}
serializedVersion: 2
m_LocalRotation: {x: 0, y: -0.68998605, z: 0, w: 0.7238227}
m_LocalPosition: {x: -0.08640012, y: -0.058060054, z: -0.035559893}
m_LocalScale: {x: 1.9460555, y: 1.9460558, z: 1.9460548}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7557613548437949332}
m_LocalEulerAnglesHint: {x: 0, y: -87.258, z: 0}
--- !u!108 &2715587763268303228
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4672178086213347511}
m_Enabled: 1
serializedVersion: 12
m_Type: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 4
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize2D: {x: 0.5, y: 0.5}
m_Shadows:
m_Type: 0
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_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
m_LightUnit: 1
m_LuxAtDistance: 1
m_EnableSpotReflector: 1
--- !u!114 &7534668295693810183
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4672178086213347511}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_CustomShadowLayers: 0
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 0
m_RenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_ShadowRenderingLayersMask:
serializedVersion: 0
m_Bits: 1
m_Version: 4
m_LightLayerMask: 1
m_ShadowLayerMask: 1
m_RenderingLayers: 1
m_ShadowRenderingLayers: 1
--- !u!1 &5784121484016646142 --- !u!1 &5784121484016646142
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -532,8 +888,7 @@ Transform:
m_LocalScale: {x: 1, y: 3, z: 1} m_LocalScale: {x: 1, y: 3, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 6959836037467520223} - {fileID: 6581087177990818461}
- {fileID: 2468530988803718223}
m_Father: {fileID: 5526037850913171920} m_Father: {fileID: 5526037850913171920}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &307011212944932494 --- !u!33 &307011212944932494
@@ -593,6 +948,118 @@ MeshRenderer:
m_SortingOrder: 0 m_SortingOrder: 0
m_MaskInteraction: 0 m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0} m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &6442667867807280322
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7936160325569085957}
- component: {fileID: 2363399320178166799}
- component: {fileID: 1511884288047282703}
- component: {fileID: 2980056174314669725}
m_Layer: 0
m_Name: top
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7936160325569085957
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6442667867807280322}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.0864, y: -0.05806017, z: -0.035559893}
m_LocalScale: {x: 0.1313874, y: 0.15512471, z: 0.15512471}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7557613548437949332}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2363399320178166799
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6442667867807280322}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1511884288047282703
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6442667867807280322}
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_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &2980056174314669725
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6442667867807280322}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &9054701043111961555 --- !u!1 &9054701043111961555
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -643,8 +1110,11 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
DougBody: {fileID: 6233083279635182816} DougBody: {fileID: 6233083279635182816}
Shovel: {fileID: 1217545746741926108} tools:
- {fileID: 948123141231275876}
- {fileID: 2884873557578242522}
walkSpeed: 2 walkSpeed: 2
sprintMultiplier: 1.5
gravity: 10 gravity: 10
--- !u!114 &5478143440182735446 --- !u!114 &5478143440182735446
MonoBehaviour: MonoBehaviour:
@@ -696,3 +1166,115 @@ CharacterController:
m_SkinWidth: 0.03 m_SkinWidth: 0.03
m_MinMoveDistance: 0.001 m_MinMoveDistance: 0.001
m_Center: {x: 0, y: -0.51, z: 0} m_Center: {x: 0, y: -0.51, z: 0}
--- !u!1 &9105254285813222465
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 892315111995737186}
- component: {fileID: 4763897214437240128}
- component: {fileID: 2333020697873716876}
- component: {fileID: 1929639563888177600}
m_Layer: 0
m_Name: button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &892315111995737186
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105254285813222465}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.046, y: -0.022, z: -0.035559893}
m_LocalScale: {x: 0.036128603, y: 0.072857425, z: 0.022073613}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7557613548437949332}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &4763897214437240128
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105254285813222465}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &2333020697873716876
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105254285813222465}
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_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1929639563888177600
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9105254285813222465}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
+16
View File
@@ -0,0 +1,16 @@
using UnityEngine;
public class Flashlight : Tool
{
public Light lightSrc;
public override void Use()
{
lightSrc.enabled = !lightSrc.enabled;
}
public override void UseAlt()
{
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: edd0364a446d1fd489dd8bbb53de613a
+14 -3
View File
@@ -4281,6 +4281,17 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 1055802463} m_Father: {fileID: 1055802463}
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
--- !u!114 &1095744520 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1217545746741926108, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3}
m_PrefabInstance: {fileID: 5777350187431524276}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 21ea1f4973209f34aa1bfb2f1dda5454, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1114011169 --- !u!1 &1114011169
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -8391,10 +8402,10 @@ PrefabInstance:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 5412473048133157928, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} - target: {fileID: 1480974628599415149, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3}
propertyPath: blackScreenObject propertyPath: activeTool
value: value:
objectReference: {fileID: 1047025329} objectReference: {fileID: 1095744520}
- target: {fileID: 5526037850913171920, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} - target: {fileID: 5526037850913171920, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -0.60945 value: -0.60945
+67 -16
View File
@@ -5,15 +5,16 @@
public class PlayerController : MonoBehaviour public class PlayerController : MonoBehaviour
{ {
public GameObject DougBody; public GameObject DougBody;
public Shovel Shovel;
public Tool[] tools;
int activeToolIndex;
float toolUseTimestamp = 0;
public float walkSpeed; public float walkSpeed;
public float sprintMultiplier = 1.5f; public float sprintMultiplier = 1.5f;
public float gravity = 10; public float gravity = 10;
float digTime = 0.9f;
float digTimestamp = 0;
bool isDigging = false;
Interactable nearestInteractable; Interactable nearestInteractable;
private CharacterController characterController; private CharacterController characterController;
private CameraController cameraController; private CameraController cameraController;
@@ -24,6 +25,7 @@ public class PlayerController : MonoBehaviour
// Start is called once before the first execution of Update after the MonoBehaviour is created // Start is called once before the first execution of Update after the MonoBehaviour is created
void Start() void Start()
{ {
activeToolIndex = 0;
characterController = GetComponent<CharacterController>(); characterController = GetComponent<CharacterController>();
cameraController = GetComponent<CameraController>(); cameraController = GetComponent<CameraController>();
} }
@@ -35,13 +37,13 @@ void Update()
if (hasControl) if (hasControl)
{ {
if (!isDigging) if (!tools[activeToolIndex].inUse)
{ {
RotatePlayerTowardMouse(); RotatePlayerTowardMouse();
TryInteract(); TryInteract();
} }
DigDetector(); ToolUseDetector();
ApplyWalk(); ApplyWalk();
// TODO: This is just for testing, remove or clean up if used // TODO: This is just for testing, remove or clean up if used
@@ -57,6 +59,7 @@ void Update()
} }
} }
CheckWeaponChange();
CheckSprint(); CheckSprint();
ApplyGravity(); ApplyGravity();
DoMovement(); DoMovement();
@@ -77,6 +80,21 @@ private void CheckSprint()
} }
} }
/// <summary>
/// Checks if weapon is being switched by scroll wheel
/// </summary>
private void CheckWeaponChange()
{
if (Input.mouseScrollDelta.y > 0)
{
SwitchTools(true);
}
else if (Input.mouseScrollDelta.y < 0)
{
SwitchTools(false);
}
}
/// <summary> /// <summary>
/// Apply walking inputs to moveDir /// Apply walking inputs to moveDir
/// </summary> /// </summary>
@@ -85,7 +103,7 @@ void ApplyWalk()
float verticalMovement = 0; float verticalMovement = 0;
float horizontalMovement = 0; float horizontalMovement = 0;
if (!isDigging) if (!tools[activeToolIndex].inUse)
{ {
verticalMovement = Input.GetAxisRaw("Vertical"); verticalMovement = Input.GetAxisRaw("Vertical");
horizontalMovement = Input.GetAxisRaw("Horizontal"); horizontalMovement = Input.GetAxisRaw("Horizontal");
@@ -151,24 +169,30 @@ public void WalkInDirection(Vector3 direction)
} }
/// <summary> /// <summary>
/// Detect input for digging (will eventually be tool agnostic) /// Detect input for tool use
/// </summary> /// </summary>
void DigDetector() void ToolUseDetector()
{ {
if (!isDigging) if (!tools[activeToolIndex].inUse)
{ {
if (Input.GetMouseButtonDown(0)) if (Input.GetMouseButtonDown(0))
{ {
Shovel.Dig(); tools[activeToolIndex].Use();
isDigging = true; tools[activeToolIndex].inUse = true;
digTimestamp = Time.time + digTime; // fuck coroutines fr fr toolUseTimestamp = Time.time + tools[activeToolIndex].useTimeSec; // fuck coroutines fr fr
}
else if (Input.GetMouseButtonDown(1))
{
tools[activeToolIndex].UseAlt();
tools[activeToolIndex].inUse = true;
toolUseTimestamp = Time.time + tools[activeToolIndex].altUseTimeSec;
} }
} }
else else
{ {
if (Time.time > digTimestamp) if (Time.time > toolUseTimestamp)
{ {
isDigging = false; tools[activeToolIndex].inUse = false;
} }
} }
} }
@@ -244,4 +268,31 @@ public bool GetCharacterHasControl()
{ {
return hasControl; return hasControl;
} }
/// <summary>
/// Switches the tools in hand.
///
/// <param name="up">Are we moving up (-1) the list?</param>
/// </summary>
private void SwitchTools(bool up)
{
// calculate index of next tool
int newIndex = up ? activeToolIndex - 1 : activeToolIndex + 1;
if (newIndex < 0)
{
newIndex = tools.Length + newIndex;
}
else if (newIndex >= tools.Length)
{
newIndex = newIndex % tools.Length;
}
// disable current tool
tools[activeToolIndex].gameObject.SetActive(false);
// load new tool
activeToolIndex = newIndex;
tools[activeToolIndex].gameObject.SetActive(true);
}
} }
+7 -2
View File
@@ -1,14 +1,19 @@
using UnityEngine; using UnityEngine;
public class Shovel : MonoBehaviour public class Shovel : Tool
{ {
public Animator shovelAnimator; public Animator shovelAnimator;
public void Dig() public override void Use()
{ {
shovelAnimator.SetTrigger("Dig"); shovelAnimator.SetTrigger("Dig");
} }
public override void UseAlt()
{
// no tool
}
// this only works if this script is sitting on the object with the collider!! // this only works if this script is sitting on the object with the collider!!
private void OnTriggerEnter(Collider other) private void OnTriggerEnter(Collider other)
{ {
+14
View File
@@ -0,0 +1,14 @@
using UnityEngine;
public abstract class Tool : MonoBehaviour
{
public float useTimeSec;
public float altUseTimeSec;
public bool inUse;
// primary (left click)
public abstract void Use();
// secondary (right click)
public abstract void UseAlt();
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 72d72769aaaeff0479ea6b811b94d1df