add 障害物
This commit is contained in:
parent
0ab01fa7a3
commit
4699751029
|
|
@ -121,6 +121,9 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
case StageItem.Type.Item1:
|
||||
headerView.AddCount();
|
||||
break;
|
||||
case StageItem.Type.Obstacle:
|
||||
player.Hit();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using UniRx;
|
||||
using UniRx.Diagnostics;
|
||||
using UniRx.Triggers;
|
||||
using UnityEngine;
|
||||
|
||||
|
|
@ -10,14 +11,23 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
[SerializeField] private float speed = 5f;
|
||||
[SerializeField] private float jumpTime = 1.25f;
|
||||
[SerializeField] private float jumpHeight = 5f;
|
||||
[SerializeField] private float hitTime = 1.5f;
|
||||
[SerializeField] private float hitWaitTime = 1f;
|
||||
private bool isJump;
|
||||
|
||||
private readonly BoolReactiveProperty isHit = new BoolReactiveProperty();
|
||||
private IDisposable hitDisposable;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
isHit.AddTo(this);
|
||||
}
|
||||
|
||||
public void Move()
|
||||
{
|
||||
if (isHit.Value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
transform.AddPositionX(speed * Time.deltaTime);
|
||||
}
|
||||
|
||||
|
|
@ -38,5 +48,26 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
isJump = false;
|
||||
});
|
||||
}
|
||||
|
||||
// こける
|
||||
public void Hit()
|
||||
{
|
||||
hitDisposable?.Dispose();
|
||||
// ジャンプが終わるのを待つ
|
||||
hitDisposable = this.UpdateAsObservable().First(_ => !isJump).Debug("Hit").Subscribe(_ =>
|
||||
{
|
||||
this.CallLerp(hitTime, t =>
|
||||
{
|
||||
// transform.SetLocalPositionY(cachePos.y + Mathf.Sin(Mathf.PI * t) * jumpHeight);
|
||||
}, () =>
|
||||
{
|
||||
isHit.Value = true;
|
||||
this.CallWaitForSeconds(hitWaitTime, () =>
|
||||
{
|
||||
isHit.Value = false;
|
||||
});
|
||||
});
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -9,11 +9,15 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
{
|
||||
public enum Type
|
||||
{
|
||||
Item1
|
||||
Item1,
|
||||
Obstacle,
|
||||
}
|
||||
|
||||
[SerializeField] private Type itemType;
|
||||
public Type ItemType => itemType;
|
||||
[SerializeField] private int point;
|
||||
|
||||
public int Point => point;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
|
|
@ -22,7 +26,16 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
|||
.Subscribe(_ =>
|
||||
{
|
||||
// effect
|
||||
gameObject.SetActive(false);
|
||||
switch (itemType)
|
||||
{
|
||||
case Type.Item1:
|
||||
gameObject.SetActive(false);
|
||||
break;
|
||||
case Type.Obstacle:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue