Для создания такого скрипта в Unity, тебе нужно будет использовать компоненты и события Unity для обработки коллизий и изменения состояний объектов.
Создайте новый скрипт в Unity и назовите его, например, ObjectManager, и добавь его на объект, который будет реагировать на перемещение персонажа (можно добавить его на сам персонаж или на объект сцены с Collider).
Получится примерно такой скрипт:
using UnityEngine;
public class ObjectManager : MonoBehaviour
{
// Счетчики для созданных и удаленных объектов
private int objectsCreated = 0;
private int objectsDeleted = 0;
private void OnTriggerEnter(Collider other)
{
// Проверяем, что объект, вошедший в Collider, является персонажем
if (other.CompareTag("Player"))
{
// Найдем объект дерево внутри зоны
GameObject tree = GameObject.FindWithTag("Tree");
if (tree != null)
{
Destroy(tree); // Удаляем дерево
objectsDeleted++; // Увеличиваем счетчик удаленных объектов
Debug.Log("Дерево удалено. Удалено всего: " + objectsDeleted);
}
}
}
private void OnTriggerExit(Collider other)
{
// При выходе из зоны создаем новый объект, например, другое дерево
if (other.CompareTag("Player"))
{
// Создаем объект на определенной позиции
Vector3 position = new Vector3(0, 0, 0); // Задаем позицию
Quaternion rotation = Quaternion.identity; // Без вращения
GameObject newTree = Instantiate(Resources.Load("TreePrefab"), position, rotation) as GameObject; // Загружаем Prefab из папки Resources
objectsCreated++; // Увеличиваем счетчик созданных объектов
Debug.Log("Дерево добавлено. Добавлено всего: " + objectsCreated);
}
}
}
Добавьте теги Player и Tree к вашим персонажу и дереву.
Убедись, что у персонажа и дерева есть Collider, и у персонажа включен isTrigger.
Разместите prefab дерева в папку Resources, чтобы его можно было загрузить скриптом.