diff options
| -rw-r--r-- | Assets/Art/Animator/Humanoid.controller | 2 | ||||
| -rw-r--r-- | Assets/Prefabs/Player.prefab | 97 | ||||
| -rw-r--r-- | Assets/Scenes/SampleScene.unity | 321 | ||||
| -rw-r--r-- | Assets/Scripts/AnimatorHandler.cs | 6 | ||||
| -rw-r--r-- | Assets/Scripts/InputHandler.cs | 2 |
5 files changed, 196 insertions, 232 deletions
diff --git a/Assets/Art/Animator/Humanoid.controller b/Assets/Art/Animator/Humanoid.controller index 23cace1..3db58dc 100644 --- a/Assets/Art/Animator/Humanoid.controller +++ b/Assets/Art/Animator/Humanoid.controller @@ -94,7 +94,7 @@ AnimatorController: m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 - m_DefaultBool: 1 + m_DefaultBool: 0 m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index a457997..9910188 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -102,7 +102,7 @@ MonoBehaviour: rootMotion: {x: 0, y: 0, z: 0} myTransform: {fileID: 0} animatorHandler: {fileID: 0} - rigidbody: {fileID: 0} + rigidbody: {fileID: 7556791337662249603} normalCamera: {fileID: 0} movementSpeed: 5 rotationSpeed: 10 @@ -123,6 +123,37 @@ MonoBehaviour: moveAmount: 0 mouseX: 0 mouseY: 0 +--- !u!1 &8264441896603829090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 415372267711881413} + m_Layer: 0 + m_Name: Rot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415372267711881413 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8264441896603829090} + 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: [] + m_Father: {fileID: 3042115499862081059} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &3042188380331580539 PrefabInstance: m_ObjectHideFlags: 0 @@ -135,6 +166,26 @@ PrefabInstance: propertyPath: m_Name value: Chr_FantasyHero_Preset_40 objectReference: {fileID: 0} + - target: {fileID: 4357803323342668, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4357803323342668, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4357803323342668, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4357803323342668, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4357803323342668, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} propertyPath: m_LocalPosition.x value: 0 @@ -187,12 +238,20 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, + type: 3} + insertIndex: -1 + addedObject: {fileID: 415372267711881413} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 1229922237220284, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} insertIndex: -1 addedObject: {fileID: 7066665064788977759} + - targetCorrespondingSourceObject: {fileID: 1559246570421444, guid: bbf9d2d73db526c4aa3f66acf676c574, + type: 3} + insertIndex: -1 + addedObject: {fileID: 7594309040562575152} m_SourcePrefab: {fileID: 100100000, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} --- !u!4 &3042115499862081059 stripped Transform: @@ -218,9 +277,43 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fe522b80fe58504408be0232c59db82f, type: 3} m_Name: m_EditorClassIdentifier: + rootMotionRotation: {fileID: 415372267711881413} playerLocomotion: {fileID: 155043711266299318} animator: {fileID: 3128674470046166765} canRotate: 1 +--- !u!1 &3043742952855593151 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1559246570421444, guid: bbf9d2d73db526c4aa3f66acf676c574, + type: 3} + m_PrefabInstance: {fileID: 3042188380331580539} + m_PrefabAsset: {fileID: 0} +--- !u!1773428102 &7594309040562575152 +ParentConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3043742952855593151} + m_Enabled: 1 + serializedVersion: 2 + m_Weight: 1 + m_TranslationAtRest: {x: 0, y: 0, z: 0} + m_RotationAtRest: {x: 0, y: 0, z: 0} + m_TranslationOffsets: + - {x: 0, y: 0, z: 0} + m_RotationOffsets: + - {x: 0, y: 0, z: 0} + m_AffectTranslationX: 1 + m_AffectTranslationY: 1 + m_AffectTranslationZ: 1 + m_AffectRotationX: 1 + m_AffectRotationY: 1 + m_AffectRotationZ: 1 + m_Active: 1 + m_IsLocked: 1 + m_Sources: + - sourceTransform: {fileID: 415372267711881413} + weight: 1 --- !u!95 &3128674470046166765 stripped Animator: m_CorrespondingSourceObject: {fileID: 95506792919036566, guid: bbf9d2d73db526c4aa3f66acf676c574, diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index b15a6eb..492ded0 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -227,6 +227,12 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 55042510} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &166230154 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + m_PrefabInstance: {fileID: 618494597} + m_PrefabAsset: {fileID: 0} --- !u!1 &244384876 GameObject: m_ObjectHideFlags: 0 @@ -792,7 +798,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cameraTransform: {fileID: 330585546} - targetTransform: {fileID: 668448698} + targetTransform: {fileID: 166230154} cameraPivotTransform: {fileID: 672788657} lookSpeed: 0.1 followSpeed: 0.1 @@ -1028,129 +1034,94 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 597806822} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &668448697 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 668448698} - - component: {fileID: 668448699} - - component: {fileID: 668448700} - - component: {fileID: 668448702} - - component: {fileID: 668448701} - m_Layer: 10 - m_Name: Player - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &668448698 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668448697} - 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: 2098161781} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!136 &668448699 -CapsuleCollider: +--- !u!1001 &618494597 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668448697} - 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: 2 - m_Radius: 0.3 - m_Height: 1.8724852 - m_Direction: 1 - m_Center: {x: 0.0054112673, y: 0.95022273, z: -0.016306937} ---- !u!54 &668448700 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668448697} - serializedVersion: 4 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 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: 1 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 112 - m_CollisionDetection: 0 ---- !u!114 &668448701 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668448697} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c4a9043d6a87ed946b39b4f4cbf2c2b4, type: 3} - m_Name: - m_EditorClassIdentifier: - horizontal: 0 - vertical: 0 - moveAmount: 0 - mouseX: 0 - mouseY: 0 ---- !u!114 &668448702 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668448697} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ca3b9320dac3304ba425bd0d3952131, type: 3} - m_Name: - m_EditorClassIdentifier: - rootMotionBlending: 0 - rootMotion: {x: 0, y: 0, z: 0} - myTransform: {fileID: 0} - animatorHandler: {fileID: 0} - rigidbody: {fileID: 0} - normalCamera: {fileID: 0} - movementSpeed: 5 - rotationSpeed: 10 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1832712451512634858, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3042037858319377207, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3042037858319377207, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3042037858319377207, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3042037858319377207, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7492058951075886424, guid: e605747809f5707438e8bb21e40534e4, + type: 3} + propertyPath: m_Name + value: Player + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e605747809f5707438e8bb21e40534e4, type: 3} --- !u!1 &672788656 GameObject: m_ObjectHideFlags: 0 @@ -1792,12 +1763,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1212256479} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1222555656 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1229922237220284, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - m_PrefabInstance: {fileID: 2098161780} - m_PrefabAsset: {fileID: 0} --- !u!1 &1296458076 GameObject: m_ObjectHideFlags: 0 @@ -2429,104 +2394,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &2098161780 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 668448698} - m_Modifications: - - target: {fileID: 1229922237220284, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_Name - value: Chr_FantasyHero_Preset_40 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 95506792919036566, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - propertyPath: m_Controller - value: - objectReference: {fileID: 9100000, guid: 8ceb66b9d11550e4cb0f7af887ee0d29, type: 2} - - target: {fileID: 95506792919036566, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - propertyPath: m_ApplyRootMotion - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 1229922237220284, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - insertIndex: -1 - addedObject: {fileID: 2098161783} - m_SourcePrefab: {fileID: 100100000, guid: bbf9d2d73db526c4aa3f66acf676c574, type: 3} ---- !u!4 &2098161781 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4439670440141400, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - m_PrefabInstance: {fileID: 2098161780} - m_PrefabAsset: {fileID: 0} ---- !u!114 &2098161783 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1222555656} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe522b80fe58504408be0232c59db82f, type: 3} - m_Name: - m_EditorClassIdentifier: - playerLocomotion: {fileID: 668448702} - animator: {fileID: 2098161784} - canRotate: 1 ---- !u!95 &2098161784 stripped -Animator: - m_CorrespondingSourceObject: {fileID: 95506792919036566, guid: bbf9d2d73db526c4aa3f66acf676c574, - type: 3} - m_PrefabInstance: {fileID: 2098161780} - m_PrefabAsset: {fileID: 0} --- !u!1 &2104828861 GameObject: m_ObjectHideFlags: 0 @@ -2674,9 +2541,9 @@ SceneRoots: - {fileID: 410087041} - {fileID: 832575519} - {fileID: 1696157895} - - {fileID: 668448698} - {fileID: 464634227} - {fileID: 244384877} - {fileID: 972458805} - {fileID: 2145279731} - {fileID: 392352793} + - {fileID: 618494597} diff --git a/Assets/Scripts/AnimatorHandler.cs b/Assets/Scripts/AnimatorHandler.cs index deae0ac..f285dca 100644 --- a/Assets/Scripts/AnimatorHandler.cs +++ b/Assets/Scripts/AnimatorHandler.cs @@ -11,6 +11,9 @@ namespace DS /// </summary> public class AnimatorHandler : MonoBehaviour { + [Header("绑定")] + public Transform rootMotionRotation; // 将他妈的模型旋转绑定到 RootMotion + [Header("组件引用")] public PlayerLocomotion playerLocomotion; // 玩家移动控制器引用,用于传递根运动数据 public Animator animator; // 动画器组件引用 @@ -139,7 +142,7 @@ namespace DS { // 获取当前帧的根运动位移向量 var rootMotion = GetRootMotion(); - + // 输出调试日志,用于查看根运动数据 Debug.Log(rootMotion); @@ -174,6 +177,7 @@ namespace DS // 将 animator.velocity(动画驱动的速度向量)投影到法线定义的平面上 // Vector3.ProjectOnPlane 会去除向量中沿法线方向的分量 // 这样只保留水平方向的位移,避免 Y 轴上的微小波动影响角色位置 + // return Vector3.ProjectOnPlane(animator.velocity, normalVector); return Vector3.ProjectOnPlane(animator.velocity, normalVector); } } diff --git a/Assets/Scripts/InputHandler.cs b/Assets/Scripts/InputHandler.cs index 4d0bba1..6da34f0 100644 --- a/Assets/Scripts/InputHandler.cs +++ b/Assets/Scripts/InputHandler.cs @@ -37,7 +37,7 @@ namespace DS // ===== Unity 生命周期方法 ===== - private void Awake() + private void Start() { // 获取相机处理器的单例引用,用于在 FixedUpdate 中驱动相机跟随与旋转 _cameraHandler = CameraHandler.singleton; |
