Для создания такой интерактивной двери в Unity тебе нужно будет использовать коллайдер и скрипт, который будет отслеживать расстояние между игроком и дверью. Когда игрок подойдёт на нужное расстояние, активируется UI элемент с кнопкой.
Вот примерный скрипт на C#:
```csharp
using UnityEngine;
using UnityEngine.UI; // не забудь добавить этот namespace для работы с UI
public class DoorController : MonoBehaviour
{
public GameObject buttonPrompt; // UI элемент с кнопкой
public float triggerDistance = 0.5f; // дистанция активации кнопки
private GameObject player; // игрок
private void Start()
{
buttonPrompt.SetActive(false); // скрыть кнопку при старте
player = GameObject.FindWithTag("Player"); // найти игрока по тегу
}
private void Update()
{
if (Vector3.Distance(player.transform.position, transform.position) <= triggerDistance)
{
buttonPrompt.SetActive(true); // показать кнопку, если игрок рядом
}
else
{
buttonPrompt.SetActive(false); // скрыть кнопку, если игрок далеко
}
}
// Метод для вызова при нажатии на кнопку
public void ToggleDoor()
{
// Здесь логика открытия или закрытия двери
}
}
```
Этот скрипт нужно прикрепить к объекту двери. Объект `buttonPrompt` должен быть UI элементом с кнопкой, который ты можешь создать в Canvas. Важно, чтобы у игрока был тег "Player", чтобы скрипт мог его корректно найти. Метод `ToggleDoor()` ты потом дополнишь логикой анимации двери.