Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class GroundSpawnController : MonoBehaviour
- {
- [SerializeField] private Transform _point;
- [SerializeField] private Transform _player;
- [SerializeField] private Transform _spawnPoint;
- [SerializeField] private GameObject _groundPrefab;
- [SerializeField] private float _distance = 20f;
- private void Start() =>
- StartDistanceChecking();
- public void StartDistanceChecking() =>
- StartCoroutine(WaitWhile(PlayerInsideDistance, Spawn));
- private bool PlayerInsideDistance() =>
- Vector2.Distance(_point.position, _player.position) <= _distance;
- private static IEnumerator WaitWhile(Func<bool> predicate, Action onComplete)
- {
- yield return new WaitWhile(predicate);
- onComplete?.Invoke();
- }
- private void Spawn() =>
- Instantiate(_groundPrefab, _spawnPoint.position, _spawnPoint.rotation);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement