diff --git a/popcorn/Assets/MyGame/Resource/Animation/Brother/Brother_pink_FallDown.anim b/popcorn/Assets/MyGame/Resource/Animation/Brother/Brother_pink_FallDown.anim index 7f6a6f0e..a0a2b975 100644 --- a/popcorn/Assets/MyGame/Resource/Animation/Brother/Brother_pink_FallDown.anim +++ b/popcorn/Assets/MyGame/Resource/Animation/Brother/Brother_pink_FallDown.anim @@ -2967,18 +2967,4 @@ AnimationClip: script: {fileID: 0} m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: - - time: 0 - functionName: OnPlaySE - data: se_minigame_Collide - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 - - time: 0.33333334 - functionName: OnPlaySE - data: se_minigame_FallDown - objectReferenceParameter: {fileID: 0} - floatParameter: 0 - intParameter: 0 - messageOptions: 0 + m_Events: [] diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs index aa3b17cb..fd4f4164 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs @@ -193,12 +193,21 @@ namespace MyGame.Scenes.MiniGame.Scripts // こける public void Hit(Vector3 hitPos) { - if (isHit) + if (isHit && !isHole) { return; } - Instantiate(hitEffectPrefab, hitPos, Quaternion.identity, transform.parent); + if (isHit && isHole) + { + endHitSubject.OnNext(Unit.Default); + } + else + { + Instantiate(hitEffectPrefab, hitPos, Quaternion.identity, transform.parent); + SoundManager.Instance.PlaySE("se_minigame_Collide"); + } + isHit = true; isHitStop = true; hitCompositeDisposable.Clear(); @@ -207,7 +216,7 @@ namespace MyGame.Scenes.MiniGame.Scripts animator?.Play("Brother_pink_FallDown", 0, 0f); animator.speed = 0f; - var hitStopTimer = Observable.Timer(TimeSpan.FromSeconds(hitStopTime)).Share(); + var hitStopTimer = Observable.Timer(TimeSpan.FromSeconds(isHit && isHole ? 0f : hitStopTime)).Share(); hitStopTimer.Subscribe(_ => { isHitStop = false; @@ -228,12 +237,12 @@ namespace MyGame.Scenes.MiniGame.Scripts // 落下時間不定によりアニメ再生停止 animator.speed = 0f; currentFallSpeed = 0f; - FallDown(basePos.y, () => + FallDown(groundPos, () => { // 31フレームまでが落下32からズサー + SoundManager.Instance.PlaySE("se_minigame_FallDown"); animator?.PlayInFixedTime("Brother_pink_FallDown", 0, .5f); animator.speed = currentSpeedMultiply; - transform.SetLocalPositionY(groundPos); currentFallSpeed = 0f; isJump = false; isFall = false; @@ -255,7 +264,7 @@ namespace MyGame.Scenes.MiniGame.Scripts } }).AddTo(hitCompositeDisposable); }).AddTo(hitCompositeDisposable); - }).AddTo(jumpCompositeDisposable); + }).AddTo(hitCompositeDisposable); }).AddTo(hitCompositeDisposable); } @@ -265,7 +274,6 @@ namespace MyGame.Scenes.MiniGame.Scripts isHole = true; isFall = true; isJump = false; - isHit = false; isHitStay = false; hitCompositeDisposable.Clear(); @@ -288,7 +296,8 @@ namespace MyGame.Scenes.MiniGame.Scripts .Subscribe(_ => { currentFallSpeed -= fallAcceleration * Time.deltaTime * currentSpeedMultiply; - transform.AddLocalPositionY(currentFallSpeed * Time.deltaTime * currentSpeedMultiply); + var newYPos = transform.localPosition.y + currentFallSpeed * Time.deltaTime * currentSpeedMultiply; + transform.SetLocalPositionY(Mathf.Max(baseYPos, newYPos)); }, onComplete); }