Add spawner override diagnostics to PickPrefab
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

- В метод PickPrefab класса EntitySpawner добавлено логирование Debug.Log при успешном переопределении префаба зоной.
- Это позволяет легко проверять, какие спавнеры и на каких точках подверглись влиянию зоны переопределения.
This commit is contained in:
Данил Ярош 2026-08-13 14:20:10 +03:00
parent ad744301dd
commit 4550e85e30

View File

@ -265,12 +265,15 @@ namespace RR.Game2D.Behaviour
{
// Проверка, находится ли эта точка спавна внутри какой-либо активной зоны переопределения
SpawnPrefabEntry[] activePrefabs = prefabs;
EntitySpawnerZone matchedZone = null;
for (int i = 0; i < EntitySpawnerZone.ActiveZones.Count; i++)
{
EntitySpawnerZone zone = EntitySpawnerZone.ActiveZones[i];
if (zone != null && zone.MatchesSpawner(this) && zone.IsPointInside(spawnPosition))
{
activePrefabs = zone.Prefabs;
matchedZone = zone;
break;
}
}
@ -293,6 +296,7 @@ namespace RR.Game2D.Behaviour
int randomValue = UnityEngine.Random.Range(0, totalWeight);
int currentWeight = 0;
GameObject selectedPrefab = null;
for (int i = 0; i < activePrefabs.Length; i++)
{
@ -301,10 +305,21 @@ namespace RR.Game2D.Behaviour
currentWeight += Mathf.Max(1, activePrefabs[i].weight);
if (randomValue < currentWeight)
return activePrefabs[i].prefab;
{
selectedPrefab = activePrefabs[i].prefab;
break;
}
}
return activePrefabs[activePrefabs.Length - 1].prefab;
if (selectedPrefab == null)
selectedPrefab = activePrefabs[activePrefabs.Length - 1].prefab;
if (selectedPrefab != null && matchedZone != null)
{
Debug.Log($"[EntitySpawner] Спавнер '{gameObject.name}' переопределил префаб для точки {spawnPosition} на '{selectedPrefab.name}' по зоне '{matchedZone.gameObject.name}'.");
}
return selectedPrefab;
}
private bool TryPickSpawnPoint(HashSet<int> usedSpawnPointIndices, out Transform spawnPoint)