public static bool TryToChangeState(Beans player) { // 到達可能なWaterBallを目指す var waters = GameObject.FindGameObjectsWithTag("Item") .Where(x => x.GetComponent <WaterBall>().Parent == null) .Where(x => player.IsReachable(x.transform.position)) .ToArray(); if (waters.Any()) { var target = waters[UnityEngine.Random.Range(0, waters.Length)]; StateToWaterBall.ChangeState(player, target); return(true); } return(false); }
public void OnReceiveSignal(Signal signal, GameObject gameObject) { switch (signal) { case Signal.ToFarm: break; case Signal.ToObstacle: StateToObstacle.ChangeState(player, gameObject); return; case Signal.ToWaterBall: StateToWaterBall.ChangeState(player, gameObject); return; default: throw new NotImplementedException(); } }