private BasicMovements RandomMove() { if (!GameManager.Instance.Pause.Paused) { bool canDo = false; BasicMovements mov = BasicMovements.Idle; mov = MovementSet[UnityEngine.Random.Range(0, MovementSet.Count)]; canDo = Mathf.Abs(transform.position.x - InitPos.x) < MoveFreedom && Mathf.Abs(transform.position.y - InitPos.y) < MoveFreedom; if (!canDo) { if (transform.position.x > InitPos.x) { return(BasicMovements.Left); } else if (transform.position.x < InitPos.x) { return(BasicMovements.Right); } else if (transform.position.y > InitPos.y) { return(BasicMovements.Down); } else { return(BasicMovements.Up); } } return(mov); } else { return(BasicMovements.Idle); } }
protected bool PerformMove(BasicMovements Movement) { switch (Movement) { case BasicMovements.Right: if (Raycast(Vector2.right, 1f)) { move(Vector2.right, TilesPerSec); if (transform.localScale.x < 0f) { transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z); } if (_animator) { _animator.Play(Animator.StringToHash("Run")); } return(true); } break; case BasicMovements.Left: if (Raycast(Vector2.left, 1f)) { move(Vector2.left, TilesPerSec); if (transform.localScale.x > 0f) { transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z); } if (_animator) { _animator.Play(Animator.StringToHash("Run")); } return(true); } break; case BasicMovements.Up: if (Raycast(Vector2.up, 1f)) { move(Vector2.up, TilesPerSec); if (_animator) { _animator.Play(Animator.StringToHash("RunUP")); } return(true); } break; case BasicMovements.Down: if (Raycast(Vector2.down, 1f)) { move(Vector2.down, TilesPerSec); if (_animator) { _animator.Play(Animator.StringToHash("RunDown")); } return(true); } break; case BasicMovements.Idle: //Don't move if (_animator) { _animator.Play(Animator.StringToHash("Idle")); } return(true); break; } return(false); }