Files
vampire-like/Assets/GameMain/Scripts/Runtime/CustomComponent/EnemyManager/SpawnStrategy/RandomCircleSpawnStrategy.cs
T
2026-09-15 11:07:01 +08:00

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;
}
}
}