2重ヒットストップ解決, 倍速時のSE鳴らないのを改善
This commit is contained in:
parent
1c3496c2e4
commit
5da9325298
|
|
@ -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: []
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue