Add spawner override diagnostics to PickPrefab
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- В метод PickPrefab класса EntitySpawner добавлено логирование Debug.Log при успешном переопределении префаба зоной. - Это позволяет легко проверять, какие спавнеры и на каких точках подверглись влиянию зоны переопределения.
This commit is contained in:
parent
ad744301dd
commit
4550e85e30
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user