aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallFox <2806143047@qq.com>2026-05-21 07:21:06 +0800
committerSmallFox <2806143047@qq.com>2026-05-21 07:21:06 +0800
commit3dcf88a36c072e42005c48dae419c66996c96f84 (patch)
tree76a068834f2f536d83d5f1702fa35de6554da8d0
parenta60a3d9344118915a50f22567bef6bee3f2a2415 (diff)
摄像机视角实现
实现跟随自由旋转
-rw-r--r--Assets/Art.meta8
-rw-r--r--Assets/Art/Animations.meta (renamed from Assets/Animations.meta)0
-rw-r--r--Assets/Art/Animations/Falling To Roll.fbxbin0 -> 1920464 bytes
-rw-r--r--Assets/Art/Animations/Falling To Roll.fbx.meta109
-rw-r--r--Assets/Art/Animations/Idle.anim (renamed from Assets/Animations/Idle.anim)0
-rw-r--r--Assets/Art/Animations/Idle.anim.meta (renamed from Assets/Animations/Idle.anim.meta)0
-rw-r--r--Assets/Art/Animations/Jump_land.anim (renamed from Assets/Animations/Jump_land.anim)0
-rw-r--r--Assets/Art/Animations/Jump_land.anim.meta (renamed from Assets/Animations/Jump_land.anim.meta)0
-rw-r--r--Assets/Art/Animations/Jump_launch.anim (renamed from Assets/Animations/Jump_launch.anim)0
-rw-r--r--Assets/Art/Animations/Jump_launch.anim.meta (renamed from Assets/Animations/Jump_launch.anim.meta)0
-rw-r--r--Assets/Art/Animations/Jump_mid.anim (renamed from Assets/Animations/Jump_mid.anim)0
-rw-r--r--Assets/Art/Animations/Jump_mid.anim.meta (renamed from Assets/Animations/Jump_mid.anim.meta)0
-rw-r--r--Assets/Art/Animations/Run.anim (renamed from Assets/Animations/Run.anim)0
-rw-r--r--Assets/Art/Animations/Run.anim.meta (renamed from Assets/Animations/Run.anim.meta)0
-rw-r--r--Assets/Art/Animations/Sprint.anim (renamed from Assets/Animations/Sprint.anim)0
-rw-r--r--Assets/Art/Animations/Sprint.anim.meta (renamed from Assets/Animations/Sprint.anim.meta)0
-rw-r--r--Assets/Art/Animations/Walk.anim (renamed from Assets/Animations/Walk.anim)0
-rw-r--r--Assets/Art/Animations/Walk.anim.meta (renamed from Assets/Animations/Walk.anim.meta)0
-rw-r--r--Assets/Art/Animator.meta (renamed from Assets/Animator.meta)0
-rw-r--r--Assets/Art/Animator/Humanoid.controller (renamed from Assets/Animator/Humanoid.controller)2
-rw-r--r--Assets/Art/Animator/Humanoid.controller.meta (renamed from Assets/Animator/Humanoid.controller.meta)0
-rw-r--r--Assets/Art/Material.meta (renamed from Assets/Material.meta)0
-rw-r--r--Assets/Art/Material/Floor_M.mat (renamed from Assets/Material/Floor_M.mat)0
-rw-r--r--Assets/Art/Material/Floor_M.mat.meta (renamed from Assets/Material/Floor_M.mat.meta)0
-rw-r--r--Assets/Scenes/SampleScene.unity205
-rw-r--r--Assets/Scripts/CameraHandler.cs71
-rw-r--r--Assets/Scripts/CameraHandler.cs.meta11
-rw-r--r--Assets/Scripts/InputHandler.cs18
-rw-r--r--Assets/Scripts/InputSystem/PlayerControls.cs2
-rw-r--r--Assets/Scripts/InputSystem/PlayerControls.inputactions2
-rw-r--r--Assets/Scripts/PlayerLocomotion.cs1
-rw-r--r--ProjectSettings/TagManager.asset2
32 files changed, 420 insertions, 11 deletions
diff --git a/Assets/Art.meta b/Assets/Art.meta
new file mode 100644
index 0000000..309dae5
--- /dev/null
+++ b/Assets/Art.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e6c431d8b5dcc37408a24b3388eedbdc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Animations.meta b/Assets/Art/Animations.meta
index 4a3f423..4a3f423 100644
--- a/Assets/Animations.meta
+++ b/Assets/Art/Animations.meta
diff --git a/Assets/Art/Animations/Falling To Roll.fbx b/Assets/Art/Animations/Falling To Roll.fbx
new file mode 100644
index 0000000..81b2aca
--- /dev/null
+++ b/Assets/Art/Animations/Falling To Roll.fbx
Binary files differ
diff --git a/Assets/Art/Animations/Falling To Roll.fbx.meta b/Assets/Art/Animations/Falling To Roll.fbx.meta
new file mode 100644
index 0000000..3fbcad3
--- /dev/null
+++ b/Assets/Art/Animations/Falling To Roll.fbx.meta
@@ -0,0 +1,109 @@
+fileFormatVersion: 2
+guid: aa6c1d6696c2e194a88dc29a3adac65d
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 3
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Animations/Idle.anim b/Assets/Art/Animations/Idle.anim
index 385bb6f..385bb6f 100644
--- a/Assets/Animations/Idle.anim
+++ b/Assets/Art/Animations/Idle.anim
diff --git a/Assets/Animations/Idle.anim.meta b/Assets/Art/Animations/Idle.anim.meta
index 484ff83..484ff83 100644
--- a/Assets/Animations/Idle.anim.meta
+++ b/Assets/Art/Animations/Idle.anim.meta
diff --git a/Assets/Animations/Jump_land.anim b/Assets/Art/Animations/Jump_land.anim
index 64bdb8b..64bdb8b 100644
--- a/Assets/Animations/Jump_land.anim
+++ b/Assets/Art/Animations/Jump_land.anim
diff --git a/Assets/Animations/Jump_land.anim.meta b/Assets/Art/Animations/Jump_land.anim.meta
index 9a34847..9a34847 100644
--- a/Assets/Animations/Jump_land.anim.meta
+++ b/Assets/Art/Animations/Jump_land.anim.meta
diff --git a/Assets/Animations/Jump_launch.anim b/Assets/Art/Animations/Jump_launch.anim
index 6f68587..6f68587 100644
--- a/Assets/Animations/Jump_launch.anim
+++ b/Assets/Art/Animations/Jump_launch.anim
diff --git a/Assets/Animations/Jump_launch.anim.meta b/Assets/Art/Animations/Jump_launch.anim.meta
index 706433d..706433d 100644
--- a/Assets/Animations/Jump_launch.anim.meta
+++ b/Assets/Art/Animations/Jump_launch.anim.meta
diff --git a/Assets/Animations/Jump_mid.anim b/Assets/Art/Animations/Jump_mid.anim
index ecf97f9..ecf97f9 100644
--- a/Assets/Animations/Jump_mid.anim
+++ b/Assets/Art/Animations/Jump_mid.anim
diff --git a/Assets/Animations/Jump_mid.anim.meta b/Assets/Art/Animations/Jump_mid.anim.meta
index 91c4fbd..91c4fbd 100644
--- a/Assets/Animations/Jump_mid.anim.meta
+++ b/Assets/Art/Animations/Jump_mid.anim.meta
diff --git a/Assets/Animations/Run.anim b/Assets/Art/Animations/Run.anim
index e835010..e835010 100644
--- a/Assets/Animations/Run.anim
+++ b/Assets/Art/Animations/Run.anim
diff --git a/Assets/Animations/Run.anim.meta b/Assets/Art/Animations/Run.anim.meta
index a5ab3f3..a5ab3f3 100644
--- a/Assets/Animations/Run.anim.meta
+++ b/Assets/Art/Animations/Run.anim.meta
diff --git a/Assets/Animations/Sprint.anim b/Assets/Art/Animations/Sprint.anim
index 2b22f43..2b22f43 100644
--- a/Assets/Animations/Sprint.anim
+++ b/Assets/Art/Animations/Sprint.anim
diff --git a/Assets/Animations/Sprint.anim.meta b/Assets/Art/Animations/Sprint.anim.meta
index d4fccf5..d4fccf5 100644
--- a/Assets/Animations/Sprint.anim.meta
+++ b/Assets/Art/Animations/Sprint.anim.meta
diff --git a/Assets/Animations/Walk.anim b/Assets/Art/Animations/Walk.anim
index 5d7528d..5d7528d 100644
--- a/Assets/Animations/Walk.anim
+++ b/Assets/Art/Animations/Walk.anim
diff --git a/Assets/Animations/Walk.anim.meta b/Assets/Art/Animations/Walk.anim.meta
index ce3102f..ce3102f 100644
--- a/Assets/Animations/Walk.anim.meta
+++ b/Assets/Art/Animations/Walk.anim.meta
diff --git a/Assets/Animator.meta b/Assets/Art/Animator.meta
index 90ed13d..90ed13d 100644
--- a/Assets/Animator.meta
+++ b/Assets/Art/Animator.meta
diff --git a/Assets/Animator/Humanoid.controller b/Assets/Art/Animator/Humanoid.controller
index 97378e3..1aea84b 100644
--- a/Assets/Animator/Humanoid.controller
+++ b/Assets/Art/Animator/Humanoid.controller
@@ -90,7 +90,7 @@ AnimatorStateMachine:
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
- m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_AnyStatePosition: {x: 60, y: 30, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
diff --git a/Assets/Animator/Humanoid.controller.meta b/Assets/Art/Animator/Humanoid.controller.meta
index ef3771a..ef3771a 100644
--- a/Assets/Animator/Humanoid.controller.meta
+++ b/Assets/Art/Animator/Humanoid.controller.meta
diff --git a/Assets/Material.meta b/Assets/Art/Material.meta
index be37edd..be37edd 100644
--- a/Assets/Material.meta
+++ b/Assets/Art/Material.meta
diff --git a/Assets/Material/Floor_M.mat b/Assets/Art/Material/Floor_M.mat
index 00cc3aa..00cc3aa 100644
--- a/Assets/Material/Floor_M.mat
+++ b/Assets/Art/Material/Floor_M.mat
diff --git a/Assets/Material/Floor_M.mat.meta b/Assets/Art/Material/Floor_M.mat.meta
index e40286f..e40286f 100644
--- a/Assets/Material/Floor_M.mat.meta
+++ b/Assets/Art/Material/Floor_M.mat.meta
diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity
index 44f5495..6ed7d71 100644
--- a/Assets/Scenes/SampleScene.unity
+++ b/Assets/Scenes/SampleScene.unity
@@ -182,7 +182,7 @@ Camera:
height: 1
near clip plane: 0.3
far clip plane: 1000
- field of view: 60
+ field of view: 40
orthographic: 0
orthographic size: 5
m_Depth: -1
@@ -208,12 +208,12 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 1, z: -10}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.3, z: -3.47}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 0}
+ m_Father: {fileID: 672788657}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &330585547
MonoBehaviour:
@@ -377,6 +377,59 @@ MonoBehaviour:
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
+--- !u!1 &464634225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 464634227}
+ - component: {fileID: 464634226}
+ m_Layer: 0
+ m_Name: Camera Holder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &464634226
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 464634225}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb1b68ec627ba6d45a0ea7b392c986b2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cameraTransform: {fileID: 330585546}
+ targetTransform: {fileID: 668448698}
+ cameraPivotTransform: {fileID: 672788657}
+ lookSpeed: 0.1
+ followSpeed: 0.1
+ pivotSpeed: 0.03
+ minimumPivot: -35
+ maximumPivot: 35
+--- !u!4 &464634227
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 464634225}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 672788657}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &668448697
GameObject:
m_ObjectHideFlags: 0
@@ -390,7 +443,7 @@ GameObject:
- component: {fileID: 668448700}
- component: {fileID: 668448702}
- component: {fileID: 668448701}
- m_Layer: 0
+ m_Layer: 10
m_Name: Player
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -498,6 +551,38 @@ MonoBehaviour:
normalCamera: {fileID: 0}
movementSpeed: 5
rotationSpeed: 10
+--- !u!1 &672788656
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 672788657}
+ m_Layer: 0
+ m_Name: Camera Pivot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &672788657
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 672788656}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 330585546}
+ m_Father: {fileID: 464634227}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &832575517
GameObject:
m_ObjectHideFlags: 0
@@ -547,6 +632,111 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &874524339
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 874524343}
+ - component: {fileID: 874524342}
+ - component: {fileID: 874524341}
+ - component: {fileID: 874524340}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &874524340
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 874524339}
+ 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!23 &874524341
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 874524339}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &874524342
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 874524339}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &874524343
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 874524339}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 12.31}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1222555656 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1229922237220284, guid: bbf9d2d73db526c4aa3f66acf676c574,
@@ -654,7 +844,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalScale: {x: 2.3286433, y: 2.3286433, z: 2.3286433}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
@@ -749,8 +939,9 @@ MonoBehaviour:
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- - {fileID: 330585546}
- {fileID: 410087041}
- {fileID: 832575519}
- {fileID: 1696157895}
- {fileID: 668448698}
+ - {fileID: 464634227}
+ - {fileID: 874524343}
diff --git a/Assets/Scripts/CameraHandler.cs b/Assets/Scripts/CameraHandler.cs
new file mode 100644
index 0000000..c815fae
--- /dev/null
+++ b/Assets/Scripts/CameraHandler.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Unity.Mathematics;
+using UnityEngine;
+
+namespace DS
+{
+ public class CameraHandler : MonoBehaviour
+ {
+ public Transform cameraTransform;
+ public Transform targetTransform;
+ public Transform cameraPivotTransform;
+ private Transform _myTransform;
+ private Vector3 _cameraTransformPosition;
+ private LayerMask _ignoreLayers;
+ private Vector3 cameraFollowVelocity = Vector3.zero;
+
+ public static CameraHandler singleton;
+ public float lookSpeed = 0.1f;
+ public float followSpeed = 0.1f;
+ public float pivotSpeed = 0.03f;
+
+ private float _targetPosition;
+ private float _defaultPosition;
+ private float _lookAngle;
+ private float _pivotAngle;
+ public float minimumPivot = -35;
+ public float maximumPivot = 35;
+
+ public float cameraSphereRadius = 0.2f;
+ public float cameraCollisionOffSet = 0.2f;
+ public float minimumCollisionOffSet = 0.2f;
+
+ private void Awake()
+ {
+ singleton = this;
+ _myTransform = transform;
+ _defaultPosition = cameraTransform.localPosition.z;
+ _ignoreLayers = ~(1 << 8 | 1 << 9 | 1 << 10);
+ }
+
+ public void FollowTarget(float delta)
+ {
+ Vector3 targetPosition = Vector3.SmoothDamp(_myTransform.position, targetTransform.position,
+ ref cameraFollowVelocity, delta / followSpeed);
+ _myTransform.position = targetPosition;
+ }
+
+ public void HandleCameraRotation(float delta, float mouseInputX, float mouseInputY)
+ {
+ _lookAngle += (mouseInputX * lookSpeed) / delta;
+ _pivotAngle -= (mouseInputY * pivotSpeed) / delta;
+ _pivotAngle = Mathf.Clamp(_pivotAngle, minimumPivot, maximumPivot);
+
+ Vector3 rotation = Vector3.zero;
+ rotation.y = _lookAngle;
+ Quaternion targetRotation = Quaternion.Euler(rotation);
+ _myTransform.rotation = targetRotation;
+
+ rotation = Vector3.zero;
+ rotation.x = _pivotAngle;
+
+ targetRotation = Quaternion.Euler(rotation);
+ cameraPivotTransform.localRotation = targetRotation;
+
+
+ }
+ }
+}
+
diff --git a/Assets/Scripts/CameraHandler.cs.meta b/Assets/Scripts/CameraHandler.cs.meta
new file mode 100644
index 0000000..a828ef6
--- /dev/null
+++ b/Assets/Scripts/CameraHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: eb1b68ec627ba6d45a0ea7b392c986b2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/InputHandler.cs b/Assets/Scripts/InputHandler.cs
index ec72656..f653adb 100644
--- a/Assets/Scripts/InputHandler.cs
+++ b/Assets/Scripts/InputHandler.cs
@@ -14,10 +14,27 @@ namespace DS
public float mouseY;
private PlayerControls _inputActions;
+ private CameraHandler _cameraHandler;
private Vector2 _movementInput;
private Vector2 _cameraInput;
+ private void Awake()
+ {
+ _cameraHandler = CameraHandler.singleton;
+ }
+
+ private void FixedUpdate()
+ {
+ float delta = Time.fixedDeltaTime;
+
+ if (_cameraHandler != null)
+ {
+ _cameraHandler.FollowTarget(delta);
+ _cameraHandler.HandleCameraRotation(delta,mouseX,mouseY);
+ }
+ }
+
public void OnEnable()
{
if (_inputActions == null)
@@ -48,6 +65,7 @@ namespace DS
moveAmount = Mathf.Clamp01(Mathf.Abs((horizontal)) + Mathf.Abs(vertical));
mouseX = _cameraInput.x;
mouseY = _cameraInput.y;
+
}
}
}
diff --git a/Assets/Scripts/InputSystem/PlayerControls.cs b/Assets/Scripts/InputSystem/PlayerControls.cs
index 71ef71f..c76f6ba 100644
--- a/Assets/Scripts/InputSystem/PlayerControls.cs
+++ b/Assets/Scripts/InputSystem/PlayerControls.cs
@@ -38,7 +38,7 @@ public partial class @PlayerControls: IInputActionCollection2, IDisposable
},
{
""name"": ""Camera"",
- ""type"": ""Value"",
+ ""type"": ""PassThrough"",
""id"": ""bb5b6b4b-5b42-4192-a498-10356a2b125a"",
""expectedControlType"": ""Vector2"",
""processors"": """",
diff --git a/Assets/Scripts/InputSystem/PlayerControls.inputactions b/Assets/Scripts/InputSystem/PlayerControls.inputactions
index ed31d4a..e71a5c9 100644
--- a/Assets/Scripts/InputSystem/PlayerControls.inputactions
+++ b/Assets/Scripts/InputSystem/PlayerControls.inputactions
@@ -16,7 +16,7 @@
},
{
"name": "Camera",
- "type": "Value",
+ "type": "PassThrough",
"id": "bb5b6b4b-5b42-4192-a498-10356a2b125a",
"expectedControlType": "Vector2",
"processors": "",
diff --git a/Assets/Scripts/PlayerLocomotion.cs b/Assets/Scripts/PlayerLocomotion.cs
index 686595d..aaa0c12 100644
--- a/Assets/Scripts/PlayerLocomotion.cs
+++ b/Assets/Scripts/PlayerLocomotion.cs
@@ -41,6 +41,7 @@ namespace DS
_moveDirection = _cameraObject.forward * _inputHandler.vertical;
_moveDirection += _cameraObject.right * _inputHandler.horizontal;
_moveDirection.Normalize();
+ _moveDirection.y = 0;
float speed = movementSpeed;
_moveDirection *= speed;
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
index 1c92a78..a4fc6b8 100644
--- a/ProjectSettings/TagManager.asset
+++ b/ProjectSettings/TagManager.asset
@@ -15,7 +15,7 @@ TagManager:
-
-
-
- -
+ - Controller
-
-
-