2重ヒットストップ解決, 倍速時のSE鳴らないのを改善
This commit is contained in:
parent
1c3496c2e4
commit
5da9325298
|
|
@ -2967,18 +2967,4 @@ AnimationClip:
|
||||||
script: {fileID: 0}
|
script: {fileID: 0}
|
||||||
m_HasGenericRootTransform: 0
|
m_HasGenericRootTransform: 0
|
||||||
m_HasMotionFloatCurves: 0
|
m_HasMotionFloatCurves: 0
|
||||||
m_Events:
|
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
|
|
||||||
|
|
|
||||||
|
|
@ -193,12 +193,21 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
// こける
|
// こける
|
||||||
public void Hit(Vector3 hitPos)
|
public void Hit(Vector3 hitPos)
|
||||||
{
|
{
|
||||||
if (isHit)
|
if (isHit && !isHole)
|
||||||
{
|
{
|
||||||
return;
|
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;
|
isHit = true;
|
||||||
isHitStop = true;
|
isHitStop = true;
|
||||||
hitCompositeDisposable.Clear();
|
hitCompositeDisposable.Clear();
|
||||||
|
|
@ -207,7 +216,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
animator?.Play("Brother_pink_FallDown", 0, 0f);
|
animator?.Play("Brother_pink_FallDown", 0, 0f);
|
||||||
animator.speed = 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(_ =>
|
hitStopTimer.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
isHitStop = false;
|
isHitStop = false;
|
||||||
|
|
@ -228,12 +237,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
// 落下時間不定によりアニメ再生停止
|
// 落下時間不定によりアニメ再生停止
|
||||||
animator.speed = 0f;
|
animator.speed = 0f;
|
||||||
currentFallSpeed = 0f;
|
currentFallSpeed = 0f;
|
||||||
FallDown(basePos.y, () =>
|
FallDown(groundPos, () =>
|
||||||
{
|
{
|
||||||
// 31フレームまでが落下32からズサー
|
// 31フレームまでが落下32からズサー
|
||||||
|
SoundManager.Instance.PlaySE("se_minigame_FallDown");
|
||||||
animator?.PlayInFixedTime("Brother_pink_FallDown", 0, .5f);
|
animator?.PlayInFixedTime("Brother_pink_FallDown", 0, .5f);
|
||||||
animator.speed = currentSpeedMultiply;
|
animator.speed = currentSpeedMultiply;
|
||||||
transform.SetLocalPositionY(groundPos);
|
|
||||||
currentFallSpeed = 0f;
|
currentFallSpeed = 0f;
|
||||||
isJump = false;
|
isJump = false;
|
||||||
isFall = false;
|
isFall = false;
|
||||||
|
|
@ -255,7 +264,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
}
|
}
|
||||||
}).AddTo(hitCompositeDisposable);
|
}).AddTo(hitCompositeDisposable);
|
||||||
}).AddTo(hitCompositeDisposable);
|
}).AddTo(hitCompositeDisposable);
|
||||||
}).AddTo(jumpCompositeDisposable);
|
}).AddTo(hitCompositeDisposable);
|
||||||
}).AddTo(hitCompositeDisposable);
|
}).AddTo(hitCompositeDisposable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -265,7 +274,6 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
isHole = true;
|
isHole = true;
|
||||||
isFall = true;
|
isFall = true;
|
||||||
isJump = false;
|
isJump = false;
|
||||||
isHit = false;
|
|
||||||
isHitStay = false;
|
isHitStay = false;
|
||||||
|
|
||||||
hitCompositeDisposable.Clear();
|
hitCompositeDisposable.Clear();
|
||||||
|
|
@ -288,7 +296,8 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
currentFallSpeed -= fallAcceleration * Time.deltaTime * currentSpeedMultiply;
|
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);
|
}, onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue