void MoveRandomly() { if (!m_shouldMove) { return; } FacingDirection targetFacingDirection = FacingDirection.South; int randomChoice = Random.Range(0, 4); if (randomChoice == 0 && !m_lockYAxis) { targetFacingDirection = FacingDirection.North; } if (randomChoice == 1 && !m_lockYAxis) { targetFacingDirection = FacingDirection.South; } if (randomChoice == 2 && !m_lockXAxis) { targetFacingDirection = FacingDirection.West; } if (randomChoice == 3 && !m_lockXAxis) { targetFacingDirection = FacingDirection.East; } Vector2 targetVector = m_characterMover.FacingDirectionToVector(targetFacingDirection); if (!m_characterMover.CanNPCMove(targetVector)) { return; } m_characterMover.SetFacingDirection(targetFacingDirection); if (!SatisfiesMovementConstraints(targetVector)) { return; } m_characterMover.StartMovingTowards(targetVector); }