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