コーンの吹っ飛び/弾けパラメータを調整可能にした
This commit is contained in:
parent
42bfb62734
commit
627c53d1bf
|
|
@ -32,8 +32,8 @@ public class Corn : MonoBehaviour
|
|||
private float cornBurntTime;
|
||||
private float cornGrowTime;
|
||||
private float cornGrowSpeed;
|
||||
private float maxSpeed = 50f;
|
||||
private float popSpeed = 20f;
|
||||
private float cornSpillSpeed;
|
||||
private float cornPopSpeed;
|
||||
|
||||
public IReadOnlyReactiveProperty<CornCondition> Condition => condition;
|
||||
private readonly ReactiveProperty<CornCondition> condition = new ReactiveProperty<CornCondition>(CornCondition.Seed);
|
||||
|
|
@ -59,7 +59,7 @@ public class Corn : MonoBehaviour
|
|||
|
||||
// コーンが飛んでいく
|
||||
this.ObserveEveryValueChanged(x => x.rigidbody.velocity.magnitude)
|
||||
.Where(x => x >= maxSpeed)
|
||||
.Where(x => x >= cornSpillSpeed)
|
||||
.FirstOrDefault()
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
|
|
@ -116,7 +116,7 @@ public class Corn : MonoBehaviour
|
|||
private void CornPop()
|
||||
{
|
||||
spriteRenderer.sprite = cornSimpleSprite;
|
||||
rigidbody.AddForce(popSpeed * new Vector2(Random.value * 2 - 1, Random.value * 2 - 1), ForceMode2D.Impulse);
|
||||
rigidbody.AddForce(cornPopSpeed * new Vector2(Random.value * 2 - 1, Random.value * 2 - 1), ForceMode2D.Impulse);
|
||||
animator.SetTrigger(HashCornGrow);
|
||||
}
|
||||
|
||||
|
|
@ -132,10 +132,12 @@ public class Corn : MonoBehaviour
|
|||
GetComponent<Collider2D>().enabled = false;
|
||||
}
|
||||
|
||||
public void SetCornProperty(float popTime, float burntDuration)
|
||||
public void SetCornProperty(float popTime, float burntDuration, float spillSpeed, float popSpeed)
|
||||
{
|
||||
cornPopTime = popTime + Random.Range(0, 2f);
|
||||
cornBurntTime = cornPopTime + burntDuration + Random.Range(0, 1f);
|
||||
cornSpillSpeed = spillSpeed;
|
||||
cornPopSpeed = popSpeed;
|
||||
}
|
||||
|
||||
public void ChangeGrowSpeed(float speed)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ public class CornManager : MonoBehaviour
|
|||
[SerializeField] private float hotGrowSpeed;
|
||||
[SerializeField] private float baseCornPopTime = 5f;
|
||||
[SerializeField] private float cornBurntDuration = 5f;
|
||||
[SerializeField] private float cornSpillSpeed = 50f;
|
||||
[SerializeField] private float cornPopSpeed = 20f;
|
||||
|
||||
public IReadOnlyReactiveProperty<CornResult> Result => result;
|
||||
private readonly ReactiveProperty<CornResult> result = new ReactiveProperty<CornResult>();
|
||||
|
|
@ -62,7 +64,7 @@ public class CornManager : MonoBehaviour
|
|||
{
|
||||
var corn = Instantiate(cornPrefab, cornSpawnTarget);
|
||||
cornArray[i] = corn;
|
||||
corn.SetCornProperty(baseCornPopTime, cornBurntDuration);
|
||||
corn.SetCornProperty(baseCornPopTime, cornBurntDuration, cornSpillSpeed, cornPopSpeed);
|
||||
|
||||
// 進行速度の変更時、コーン速度変更
|
||||
cornGrowSpeed.TakeWhile(_ => !isCompleted).Subscribe(x =>
|
||||
|
|
|
|||
Loading…
Reference in New Issue