27 lines
793 B
C#
27 lines
793 B
C#
using UnityEngine;
|
|
using Random = UnityEngine.Random;
|
|
|
|
namespace SepCore.EnemyManager
|
|
{
|
|
public class RandomCircleSpawnStrategy : ISpawnPositionStrategy
|
|
{
|
|
private readonly float _minDistance;
|
|
private readonly float _maxDistance;
|
|
|
|
public RandomCircleSpawnStrategy(float minDistance, float maxDistance)
|
|
{
|
|
_minDistance = minDistance;
|
|
_maxDistance = maxDistance;
|
|
}
|
|
|
|
public Vector3 GetSpawnPosition(Transform player)
|
|
{
|
|
float x = Random.Range(-1f, 1f);
|
|
float z = Random.Range(-1f, 1f);
|
|
Vector3 dir = new Vector3(x, 0f, z).normalized;
|
|
float distance = Random.Range(_minDistance, _maxDistance);
|
|
return player.position + dir * distance;
|
|
}
|
|
}
|
|
}
|