お客さん行動パターンCenterStop追加

This commit is contained in:
kimura 2021-10-27 09:55:09 +09:00
parent a139736a7c
commit 2bb250d135
1 changed files with 34 additions and 12 deletions

View File

@ -22,6 +22,7 @@ public enum CustomerState
{
Walk,
WalkShop,
CenterStop,
Wait,
Order,
Leave,
@ -33,7 +34,6 @@ public class CustomerController : MonoBehaviour
{
public int OrderCount;
public CustomerAnimator CustomerPrefab;
public bool IsCustomer;
public bool IsPause;
// 歩道の幅(min,max)
@ -94,13 +94,15 @@ public class CustomerController : MonoBehaviour
purchased.AddTo(this);
durationDelta = 0f;
Observable.Interval(TimeSpan.FromSeconds(.1f)).Subscribe(_ =>
{
// if (Vector3.Distance(transform.localPosition, wayPoint) < .09f)
// {
// Debug.Log($"{transform.localPosition}, {wayPoint}, {currentMovingType.Value}, {moveEndSubject.Value} {GetHashCode()}");
// }
}).AddTo(this);
#if UNITY_EDITOR
// Observable.Interval(TimeSpan.FromSeconds(.1f)).Subscribe(_ =>
// {
// if (Vector3.Distance(transform.localPosition, wayPoint) < .09f)
// {
// Debug.Log($"{transform.localPosition}, {wayPoint}, {currentMovingType.Value}, {moveEndSubject.Value} {GetHashCode()}");
// }
// }).AddTo(this);
#endif
this.UpdateAsObservable().Subscribe(_ =>
{
if (IsPause)
@ -136,11 +138,26 @@ public class CustomerController : MonoBehaviour
public void Setup(List<Transform> newOrderPositions)
{
orderPositions = newOrderPositions;
walkSideDirection = Mathf.Sign(Random.value - .5f);
beginPos = Vector3.zero;
beginPos.x = leftEndPosision * walkSideDirection;
beginPos.y = Random.Range(walkSideMidPos, walkSideBottomPos);
var pos = Vector3.zero;
pos.x = leftEndPosision * walkSideDirection;
pos.y = Random.Range(walkSideMidPos, walkSideBottomPos);
Setup(newOrderPositions, pos);
}
public void SetupCenter(List<Transform> newOrderPositions)
{
walkSideDirection = Mathf.Sign(Random.value - .5f);
var pos = Vector3.zero;
pos.x = Random.Range(-stopPositionRange, stopPositionRange) + stopPosision;
pos.y = Random.Range(walkSideMidPos, walkSideBottomPos);
Setup(newOrderPositions, pos);
}
private void Setup(List<Transform> newOrderPositions, Vector2 position)
{
orderPositions = newOrderPositions;
beginPos = position;
transform.localPosition = beginPos;
currentMovingType.Value = CustomerMovingType.StayBack;
moveEndSubject.Value = CustomerMovingType.StayBack;
@ -163,6 +180,11 @@ public class CustomerController : MonoBehaviour
case CustomerState.WalkShop:
ForceSetMove(CustomerMovingType.WalkCenter);
break;
case CustomerState.CenterStop:
// 中央付近で立ち止まる
ForceSetMove(CustomerMovingType.WalkCenter);
AddMove(CustomerMovingType.StayBack);
break;
case CustomerState.Wait:
// 店に向かう&順番待ち
// 近くの場合その場に待機