diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Prefabs/Brother_pink.prefab b/popcorn/Assets/MyGame/Scenes/MiniGame/Prefabs/Brother_pink.prefab index 974509fc..04f6dd04 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Prefabs/Brother_pink.prefab +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Prefabs/Brother_pink.prefab @@ -449,9 +449,9 @@ GameObject: - component: {fileID: 1100708945145624655} - component: {fileID: 2191675667085566828} - component: {fileID: 2607884839347368726} + - component: {fileID: 5073600136309842042} - component: {fileID: 6629287981537804912} - component: {fileID: 2000284772114145180} - - component: {fileID: 5073600136309842042} - component: {fileID: 3714690223456412398} m_Layer: 0 m_Name: Brother_pink @@ -523,14 +523,57 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: speed: 5 - jumpTime: 1.25 - jumpHeight: 5 fallTime: 0.5 hitTime: 1.5 hitWaitTime: 1 + jumpAnimationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.010743141 + inSlope: 20.455141 + outSlope: 20.455141 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.061644025 + - serializedVersion: 3 + time: 0.625 + value: 5 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 0 + m_RotationOrder: 4 level1: {fileID: 775281020594132328} level2: {fileID: 7545235244005095164} level3: {fileID: 3741799588110921262} +--- !u!50 &5073600136309842042 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1088131638166771230} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 --- !u!61 &6629287981537804912 BoxCollider2D: m_ObjectHideFlags: 0 @@ -541,7 +584,7 @@ BoxCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} - m_IsTrigger: 1 + m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 m_Offset: {x: -0.7984886, y: -0.13052177} @@ -567,7 +610,7 @@ BoxCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} - m_IsTrigger: 1 + m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 m_Offset: {x: -0.40692186, y: 1.5892982} @@ -583,27 +626,6 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 1.8138437, y: 0.61611176} m_EdgeRadius: 0 ---- !u!50 &5073600136309842042 -Rigidbody2D: - serializedVersion: 4 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1088131638166771230} - m_BodyType: 1 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDrag: 0 - m_AngularDrag: 0.05 - m_GravityScale: 1 - m_Material: {fileID: 0} - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 4 --- !u!114 &3714690223456412398 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/DebugGame.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/DebugGame.cs index af63ba43..040e53b8 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/DebugGame.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/DebugGame.cs @@ -84,7 +84,7 @@ namespace MyGame.Scenes.MiniGame.Scripts lineRendererCenter.SetPosition(0, character.position + centerOffset); lineRendererFront.SetPosition(0, character.position + frontOffset); - Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(.1f)) + Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(.02f)) .DelayFrameSubscription(2) .Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs index 3ffa24ae..68eeb3ef 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs @@ -8,11 +8,10 @@ namespace MyGame.Scenes.MiniGame.Scripts public class Player : MonoBehaviour { [SerializeField] private float speed = 5f; - [SerializeField] private float jumpTime = 1.25f; - [SerializeField] private float jumpHeight = 5f; [SerializeField] private float fallTime = 1f; [SerializeField] private float hitTime = 1.5f; [SerializeField] private float hitWaitTime = 1f; + [SerializeField] private AnimationCurve jumpAnimationCurve; [SerializeField] private GameObject level1; [SerializeField] private GameObject level2; [SerializeField] private GameObject level3; @@ -28,8 +27,8 @@ namespace MyGame.Scenes.MiniGame.Scripts private void Start() { isHit.AddTo(this); - basePos = transform.localPosition; animator = GetComponent(); + basePos = transform.localPosition; } public void Stay(bool force = false) @@ -65,9 +64,11 @@ namespace MyGame.Scenes.MiniGame.Scripts SoundManager.Instance.PlaySE("se_minigame_Jump"); animator?.Play("Brother_pink_jump"); isJump = true; + var lastFrame = jumpAnimationCurve[jumpAnimationCurve.length - 1]; + var jumpTime = lastFrame.time * 2; jumpCoroutine = this.CallLerp(jumpTime, t => { - transform.SetLocalPositionY(basePos.y + Mathf.Sin(Mathf.PI * t) * jumpHeight); + transform.SetLocalPositionY(basePos.y + jumpAnimationCurve.Evaluate(t * jumpTime)); }, () => { isJump = false;