Как можно отобразить зону появления ресурса в редакторе Unity?

У меня есть объект Resource Manager, который содержит дочерние объекты - точки спавна. Каждая точка спавна имеет радиус проверки на наличие объектов в данной точке. Как мне сделать так, чтобы при выборе любого дочернего объекта Resource Manager'a отображался радиус спавна для каждой из этих точек? Надеюсь, мой вопрос понятен и решение возможно.
  • 4 апреля 2025 г. 13:44
Ответы на вопрос 1
Чтобы отобразить радиус спавна ваших точек в редакторе Unity при выборе дочерних объектов (точек спавна), вам нужно создать пользовательский редакторский скрипт. В Unity вы можете использовать `OnDrawGizmos` или `OnDrawGizmosSelected`, чтобы визуализировать Gizmos в редакторе.

Вот как вы можете это сделать:

1. **Создайте класс для вашей точки спавна (если у вас его еще нет):**
```csharp
using UnityEngine;

public class SpawnPoint : MonoBehaviour
{
    public float spawnRadius = 5f; // Радиус спавна

    // Другие параметры для ваших точек спавна
}
```

2. **Создайте пользовательский редактор для вашего класса `SpawnPoint`:**
```csharp
using UnityEngine;

[ExecuteInEditMode]
[RequireComponent(typeof(SpawnPoint))]
public class SpawnPointEditor : MonoBehaviour
{
    void OnDrawGizmosSelected()
    {
        SpawnPoint spawnPoint = GetComponent<SpawnPoint>();
        Gizmos.color = Color.red; // Цвет Gizmos
        Gizmos.DrawWireSphere(transform.position, spawnPoint.spawnRadius); // Рисуем круг
    }
}
```

3. **Примените этот скрипт к вашим точкам спавна.**
   
4. **Теперь, когда вы выбираете точку спавна в редакторе, радиус спавна будет отображаться в виде красного круга.**

Этот код создаст визуализацию радиуса спавна, когда объект с компонентом `SpawnPoint` выбран в редакторе. Вы можете менять цвет или стиль круга, изменяя параметры в методе `OnDrawGizmosSelected()`.

Если вам нужно отобразить радиусы для всех дочерних объектов `Resource Manager`, не забудьте, что каждый дочерний объект должен иметь компонент `SpawnPoint`, который использует код из примера выше. Таким образом, при выборе любого дочернего объекта будут отображаться соответствующие радиусы.
Похожие вопросы