From 701113cf63da4115f932b6cfb89cd52828ffa405 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 29 Jan 2022 22:31:47 +0800 Subject: *misc --- .../Demo/Scenes/FPSCharacterController.unity | 179 +++++++++++++++------ .../Prefabs/Player_Velocity.prefab | 100 +----------- .../Scripts/FPSCharacterController.cs | 128 ++++++++++----- .../FPSControllerVelocity/Scripts/GroundChecker.cs | 13 +- .../Scripts/MainCameraFollow.cs | 20 +++ .../Scripts/MainCameraFollow.cs.meta | 11 ++ 6 files changed, 258 insertions(+), 193 deletions(-) create mode 100644 JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs create mode 100644 JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs.meta (limited to 'JamHelper/Assets/JamTools/FPSControllerVelocity') diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Demo/Scenes/FPSCharacterController.unity b/JamHelper/Assets/JamTools/FPSControllerVelocity/Demo/Scenes/FPSCharacterController.unity index dae43c4..c44bd18 100644 --- a/JamHelper/Assets/JamTools/FPSControllerVelocity/Demo/Scenes/FPSCharacterController.unity +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Demo/Scenes/FPSCharacterController.unity @@ -749,7 +749,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70236 + m_Name: pb_Mesh28150 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -1000,7 +1000,7 @@ Transform: m_LocalScale: {x: 5, y: 1, z: 5} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 11 + m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &190189551 GameObject: @@ -1509,7 +1509,7 @@ Transform: - {fileID: 1304633276} - {fileID: 459152570} m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &239987018 GameObject: @@ -1575,7 +1575,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &279687859 GameObject: @@ -1696,7 +1696,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70260 + m_Name: pb_Mesh28166 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -1944,7 +1944,7 @@ Canvas: m_Enabled: 1 serializedVersion: 3 m_RenderMode: 2 - m_Camera: {fileID: 1950957598} + m_Camera: {fileID: 0} m_PlaneDistance: 100 m_PixelPerfect: 0 m_ReceivesEvents: 1 @@ -2110,7 +2110,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70154 + m_Name: pb_Mesh28062 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -2888,6 +2888,102 @@ Transform: m_Father: {fileID: 1861258021} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &685442957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 685442960} + - component: {fileID: 685442959} + - component: {fileID: 685442958} + - component: {fileID: 685442961} + 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 &685442958 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685442957} + m_Enabled: 1 +--- !u!20 &685442959 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685442957} + 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: 439 + 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 &685442960 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685442957} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.2635603, y: 0.5, z: -0.6} + 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 &685442961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685442957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 52723e4b1bc8e7a459bca520c75f6e48, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &705507993 GameObject: m_ObjectHideFlags: 0 @@ -2979,7 +3075,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} --- !u!1 &729325353 GameObject: @@ -6221,7 +6317,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &830429033 GameObject: @@ -6944,7 +7040,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh69896 + m_Name: pb_Mesh27806 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -7108,7 +7204,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70356 + m_Name: pb_Mesh28264 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -7297,7 +7393,7 @@ Transform: - {fileID: 961102767} - {fileID: 1213064841} m_Father: {fileID: 0} - m_RootOrder: 10 + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &961102761 GameObject: @@ -7454,7 +7550,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70048 + m_Name: pb_Mesh27956 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -7649,7 +7745,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70310 + m_Name: pb_Mesh28220 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -7813,7 +7909,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70060 + m_Name: pb_Mesh27976 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -8064,7 +8160,7 @@ RectTransform: m_Children: - {fileID: 1086095811} m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -8305,7 +8401,7 @@ Transform: m_LocalScale: {x: 10, y: 5, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!54 &1124696510 Rigidbody: @@ -8352,7 +8448,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1156133196} serializedVersion: 2 - m_Mass: 1000 + m_Mass: 40 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 @@ -8658,7 +8754,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70202 + m_Name: pb_Mesh28114 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -13003,7 +13099,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1537433337 GameObject: @@ -13654,7 +13750,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1621878133} serializedVersion: 2 - m_Mass: 1000 + m_Mass: 40 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 @@ -13960,7 +14056,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70026 + m_Name: pb_Mesh27938 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -14236,7 +14332,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh69952 + m_Name: pb_Mesh27846 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -14400,7 +14496,7 @@ Mesh: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: pb_Mesh70214 + m_Name: pb_Mesh28126 serializedVersion: 10 m_SubMeshes: - serializedVersion: 2 @@ -14593,7 +14689,7 @@ Transform: - {fileID: 1719779269} - {fileID: 1002245355} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1839905729 GameObject: @@ -14688,7 +14784,7 @@ Transform: m_LocalScale: {x: 5, y: 5, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 13 + m_RootOrder: 14 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1861258020 GameObject: @@ -14724,7 +14820,7 @@ Transform: - {fileID: 1537433342} - {fileID: 666827294} m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1893547452 GameObject: @@ -15467,11 +15563,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1924073677} m_CullTransparentMesh: 1 ---- !u!20 &1950957598 stripped -Camera: - m_CorrespondingSourceObject: {fileID: 6879717248509490095, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} - m_PrefabInstance: {fileID: 6879717249385526193} - m_PrefabAsset: {fileID: 0} --- !u!1 &1966873324 GameObject: m_ObjectHideFlags: 0 @@ -15613,7 +15704,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2137460919} serializedVersion: 2 - m_Mass: 1000 + m_Mass: 40 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 @@ -15926,7 +16017,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6462871305178900895, guid: b338d16f2565167408259c170d8f52b3, type: 3} propertyPath: m_RootOrder - value: 1 + value: 2 objectReference: {fileID: 0} - target: {fileID: 6462871305178900895, guid: b338d16f2565167408259c170d8f52b3, type: 3} propertyPath: m_LocalPosition.x @@ -15978,20 +16069,12 @@ PrefabInstance: m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 7739210602112578966, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} - propertyPath: m_LookSmooth - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 7739210602112578966, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} - propertyPath: m_MoveSmooth - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 7739210602112578966, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} - propertyPath: m_LookSensitive - value: 1000 - objectReference: {fileID: 0} + propertyPath: m_Camera + value: + objectReference: {fileID: 685442961} - target: {fileID: 7739210602112578984, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} propertyPath: m_RootOrder - value: 12 + value: 13 objectReference: {fileID: 0} - target: {fileID: 7739210602112578984, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} propertyPath: m_LocalPosition.x @@ -16033,10 +16116,6 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7739210602112578985, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} - propertyPath: m_Interpolate - value: 0 - objectReference: {fileID: 0} - target: {fileID: 7739210602112578987, guid: 8ec8551d12bf0c649a5ba9d04f879de5, type: 3} propertyPath: m_Name value: Player_Velocity diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Prefabs/Player_Velocity.prefab b/JamHelper/Assets/JamTools/FPSControllerVelocity/Prefabs/Player_Velocity.prefab index 9df88ff..71094c0 100644 --- a/JamHelper/Assets/JamTools/FPSControllerVelocity/Prefabs/Player_Velocity.prefab +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Prefabs/Player_Velocity.prefab @@ -1,88 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &6879717248509490093 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6879717248509490088} - - component: {fileID: 6879717248509490095} - - component: {fileID: 6879717248509490094} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6879717248509490088 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6879717248509490093} - 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: 7739210601870697702} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!20 &6879717248509490095 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6879717248509490093} - 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: 439 - 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!81 &6879717248509490094 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6879717248509490093} - m_Enabled: 1 --- !u!1 &6879717248958439983 GameObject: m_ObjectHideFlags: 0 @@ -335,8 +252,8 @@ SphereCollider: m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Radius: 0.41830033 - m_Center: {x: 0, y: 0.33, z: -0.0037634373} + m_Radius: 0.47066826 + m_Center: {x: 0, y: 0.36, z: -0.0060388446} --- !u!1 &7739210601246302678 GameObject: m_ObjectHideFlags: 0 @@ -395,7 +312,6 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7739210602005167409} - - {fileID: 6879717248509490088} m_Father: {fileID: 7739210602112578984} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -527,7 +443,7 @@ Rigidbody: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7739210602112578987} serializedVersion: 2 - m_Mass: 30 + m_Mass: 40 m_Drag: 0 m_AngularDrag: 0.05 m_UseGravity: 1 @@ -552,15 +468,13 @@ MonoBehaviour: m_Body: {fileID: 6879717248493419552} m_GroundChecker: {fileID: 7739210600721244159} m_WallChecker: {fileID: 6401592115772403490} - m_LookSensitive: 500 + m_Camera: {fileID: 0} + m_LookSensitive: 1000 m_LookSmooth: 0.2 - m_LookSmoothMultiplier: 100 - m_LookSmoothWithTime: 1 m_MoveSpeed: 500 - m_MoveSmooth: 0.1 - m_MoveSmoothMultiplier: 100 - m_MoveSmoothWithTime: 1 + m_MoveSmooth: 0.2 m_MoveSpeedInAir: 500 + m_JumpPower: 300 m_Muzzle: {fileID: 7739210601246302679} m_HittableLayers: serializedVersion: 2 diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/FPSCharacterController.cs b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/FPSCharacterController.cs index f995c8e..c51fffc 100644 --- a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/FPSCharacterController.cs +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/FPSCharacterController.cs @@ -28,6 +28,7 @@ namespace JamTools Step = 1 << 12, // ½Å²½ PullTrick = 1 << 13, // ExtraGravity = 1 << 14, // ¶îÍâÖØÁ¦ + Crouch = 1 << 15, } [SerializeField] private CharacterModule m_Modules; @@ -38,14 +39,14 @@ namespace JamTools [SerializeField] private GroundChecker m_GroundChecker; [SerializeField] private WallChecker m_WallChecker; + [SerializeField] private MainCameraFollow m_Camera; + #region Modules [Header("Look Around")] [SerializeField] private float m_LookSensitive = 1000f; [Range(0.01f, 1)] [SerializeField] private float m_LookSmooth = 0.2f; - [SerializeField] private float m_LookSmoothMultiplier = 100; - [SerializeField] private bool m_LookSmoothWithTime = true; private float m_CameraRotation; private float m_BodyRotation; @@ -53,12 +54,17 @@ namespace JamTools [SerializeField] private float m_MoveSpeed = 100f; [Range(0.01f, 1)] [SerializeField] private float m_MoveSmooth = 0.2f; - [SerializeField] private float m_MoveSmoothMultiplier = 100; - [SerializeField] private bool m_MoveSmoothWithTime = true; private Vector3 m_MoveDirection; + private bool m_ReadyMoveAround = false; [Header("Move In Air")] [SerializeField] private float m_MoveSpeedInAir = 50f; + [SerializeField] private float m_MoveInAirSmooth = 0.2f; + private Vector3 m_MoveInAirDirection; + + [Header("Jump")] + [SerializeField] private float m_JumpPower = 300f; + private bool m_ReadyToJump = false; [Header("Shot")] [SerializeField] private Transform m_Muzzle; @@ -68,7 +74,10 @@ namespace JamTools [Header("WallJump")] [SerializeField] private float m_WallJumpForce = 1; [SerializeField] private float m_WallJumpPower = 1000; + private bool m_ReadyWallJump = false; + [Header("WallRun")] + [SerializeField] private float m_WallRunSpeed = 1; [Header("ExtraGravity")] [SerializeField] private Vector3 m_ExtraGravity; @@ -119,16 +128,14 @@ namespace JamTools float mouseX = Input.GetAxis("Mouse X"); float mouseY = Input.GetAxis("Mouse Y"); - float t = m_LookSmoothWithTime ? Time.deltaTime : 1; - m_CameraRotation -= mouseY * Time.deltaTime * m_LookSensitive; m_CameraRotation = Mathf.Clamp(m_CameraRotation, -90, 90); Quaternion rot = Quaternion.Euler(m_CameraRotation, 0, 0); - m_Eye.localRotation = Quaternion.Slerp(m_Eye.localRotation, rot, m_LookSmooth * t * m_LookSmoothMultiplier); + m_Eye.localRotation = Quaternion.Slerp(m_Eye.localRotation, rot, m_LookSmooth ); m_BodyRotation += mouseX * Time.deltaTime * m_LookSensitive; rot = Quaternion.Euler(0, m_BodyRotation, 0); - transform.localRotation = Quaternion.Slerp(transform.localRotation, rot, m_LookSmooth * t * m_LookSmoothMultiplier); + transform.localRotation = Quaternion.Slerp(transform.localRotation, rot, m_LookSmooth); } void MoveAroundUpdate() @@ -139,31 +146,33 @@ namespace JamTools if (!m_GroundChecker.isOnGround) return; - float moveX = Input.GetAxis("Horizontal"); - float moveZ = Input.GetAxis("Vertical"); + float moveX = Input.GetAxisRaw("Horizontal"); + float moveZ = Input.GetAxisRaw("Vertical"); Vector3 right = transform.right; Vector3 forward = transform.forward; m_MoveDirection = right * moveX + forward * moveZ; - //if (IsModuleActive(CharacterModule.WalkOnSlope)) - //{ - // if (m_GroundChecker.isOnGround) - // { - // RaycastHit hitInfo; - // if (Physics.Raycast(m_GroundChecker.foot.position, Vector3.down, out hitInfo)) - // { - // Vector3 normal = hitInfo.normal; - // m_MoveDirection = Vector3.ProjectOnPlane(m_MoveDirection, normal); - // GizmosHandle.Instance.DoGizmos(() => { - // Gizmos.DrawLine(hitInfo.point + new Vector3(0, 0.1f, 0), hitInfo.point + m_MoveDirection); - // }); - // } - // } - //} + if (IsModuleActive(CharacterModule.WalkOnSlope)) + { + if (m_GroundChecker.isOnGround) + { + RaycastHit hitInfo; + if (Physics.Raycast(m_GroundChecker.foot.position, Vector3.down, out hitInfo)) + { + Vector3 normal = hitInfo.normal; + m_MoveDirection = Vector3.ProjectOnPlane(m_MoveDirection, normal); + GizmosHandle.Instance.DoGizmos(() => + { + Gizmos.DrawLine(hitInfo.point + new Vector3(0, 0.1f, 0), hitInfo.point + m_MoveDirection); + }); + } + } + } m_MoveDirection = m_MoveDirection.normalized; + } void MoveAroundFixedUpdate() @@ -177,9 +186,7 @@ namespace JamTools float vy = m_Rigidbody.velocity.y; Vector3 velocity = new Vector3(m_MoveDirection.x * Time.deltaTime * m_MoveSpeed, vy, m_MoveDirection.z * Time.deltaTime * m_MoveSpeed); - float t = m_MoveSmoothWithTime ? Time.deltaTime : 1; - m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, m_MoveSmooth * t * m_MoveSmoothMultiplier); - //m_Rigidbody.AddForce(velocity * m_MoveSmoothMultiplier, ForceMode.VelocityChange); + m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, m_MoveSmooth); } void MoveInAirUpdate() @@ -190,10 +197,10 @@ namespace JamTools if (m_GroundChecker.isOnGround) return; - float moveX = Input.GetAxis("Horizontal"); - float moveZ = Input.GetAxis("Vertical"); + float moveX = Input.GetAxisRaw("Horizontal"); + float moveZ = Input.GetAxisRaw("Vertical"); - m_MoveDirection = Vector3.ClampMagnitude(transform.right * moveX + transform.forward * moveZ, 1); + m_MoveInAirDirection = Vector3.ClampMagnitude(transform.right * moveX + transform.forward * moveZ, 1); } void MoveInAirFixedUpdate() @@ -204,13 +211,13 @@ namespace JamTools if (m_GroundChecker.isOnGround) return; - if (m_MoveDirection.magnitude == 0) + if (m_MoveInAirDirection.magnitude == 0f) return; float vy = m_Rigidbody.velocity.y; - Vector3 velocity = new Vector3(m_MoveDirection.x * Time.deltaTime * m_MoveSpeedInAir, vy, m_MoveDirection.z * Time.deltaTime * m_MoveSpeedInAir); + Vector3 velocity = new Vector3(m_MoveInAirDirection.x * Time.deltaTime * m_MoveSpeedInAir, vy, m_MoveInAirDirection.z * Time.deltaTime * m_MoveSpeedInAir); - m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, 0.1f); + m_Rigidbody.velocity = Vector3.Lerp(m_Rigidbody.velocity, velocity, m_MoveInAirSmooth); } void Jump() @@ -223,7 +230,16 @@ namespace JamTools if (Input.GetButtonDown("Jump")) { - m_Rigidbody.AddForce(Vector3.up * 300, ForceMode.Acceleration); + m_ReadyToJump = true; + } + } + + void JumpFixedUpdate() + { + if(m_ReadyToJump) + { + m_ReadyToJump = false; + m_Rigidbody.AddForce(Vector3.up * m_JumpPower, ForceMode.Acceleration); } } @@ -234,10 +250,15 @@ namespace JamTools if (Input.GetKeyDown(KeyCode.LeftShift)) { - m_Rigidbody.AddForce(transform.forward * 5000, ForceMode.Acceleration); + } } + void DodgeFixed() + { + + } + void Shot() { if (!IsModuleActive(CharacterModule.Shot)) @@ -284,17 +305,26 @@ namespace JamTools if (Input.GetButtonDown("Jump")) { - Vector3 poc; - if (m_WallChecker.GetCollisionPoint(out poc)) - { - Vector3 dir = Vector3.ClampMagnitude(transform.position - poc, 1f); - Vector3 wallJumpDirection = new Vector3(dir.x, 1, dir.z); - m_Rigidbody.velocity = Vector3.zero; - m_Rigidbody.AddForce(wallJumpDirection * m_WallJumpPower); - } + m_ReadyWallJump = true; } } + void WallJumpFixedUpdate() + { + if(m_ReadyWallJump) + { + m_ReadyWallJump = false; + Vector3 poc; + if (m_WallChecker.GetCollisionPoint(out poc)) + { + Vector3 dir = Vector3.ClampMagnitude(transform.position - poc, 1f); + Vector3 wallJumpDirection = new Vector3(dir.x, 1, dir.z); + m_Rigidbody.velocity = Vector3.zero; + m_Rigidbody.AddForce(wallJumpDirection * m_WallJumpPower); + } + } + } + void WallRun() { if (!IsModuleActive(CharacterModule.WallRun)) @@ -318,6 +348,11 @@ namespace JamTools m_Rigidbody.AddForce(m_ExtraGravity, ForceMode.Acceleration); } + void SetCamera () + { + m_Camera.SetCameraPositionAndRotation(m_Eye); + } + private void Awake() { m_Rigidbody = GetComponent(); @@ -340,13 +375,18 @@ namespace JamTools Shot(); WallJump(); PullTrick(); + + SetCamera(); } private void FixedUpdate() { MoveAroundFixedUpdate(); MoveInAirFixedUpdate(); + DodgeFixed(); ExtraGravity(); + JumpFixedUpdate(); + WallJumpFixedUpdate(); } private void OnDrawGizmos() diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/GroundChecker.cs b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/GroundChecker.cs index 6fa3a60..a0bd4eb 100644 --- a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/GroundChecker.cs +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/GroundChecker.cs @@ -9,6 +9,8 @@ namespace JamTools { [SerializeField] private Transform m_Foot; + private List m_Colliders = new List(); + public Transform foot { get @@ -17,29 +19,28 @@ namespace JamTools } } - private bool m_IsOnGround; public bool isOnGround { get { - return m_IsOnGround; + return m_Colliders.Count != 0; } } private void OnTriggerEnter(Collider other) { - m_IsOnGround = true; + if (!m_Colliders.Contains(other)) + m_Colliders.Add(other); } private void OnTriggerExit(Collider other) { - m_IsOnGround = false; + if (m_Colliders.Contains(other)) + m_Colliders.Remove(other); } private void OnTriggerStay(Collider other) { - m_IsOnGround = true; - } } diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs new file mode 100644 index 0000000..87d1fe5 --- /dev/null +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace JamTools +{ + + [RequireComponent(typeof(Camera))] + public class MainCameraFollow : MonoBehaviour + { + + public void SetCameraPositionAndRotation(Transform reference) + { + transform.position = reference.position; + transform.rotation = reference.rotation; + } + + } + +} \ No newline at end of file diff --git a/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs.meta b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs.meta new file mode 100644 index 0000000..890d789 --- /dev/null +++ b/JamHelper/Assets/JamTools/FPSControllerVelocity/Scripts/MainCameraFollow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52723e4b1bc8e7a459bca520c75f6e48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0