Рискну предположить что вы хотите показывать игроку описания объектов, на которые он смотрит. В таком случае задача решается примерно так:
0. На предметы, которые можно рассматривать, вешаем класс (назовем его
Describable
), который содержит собственно описание. Так же для оптимизации такие предметы нужно поместить на отдельный layer.
1. На камеру вешаем скрипт, который в Update делает raycast:
var fwdLook = camera.TransformDirection(Vector3.forward);
RaycastHit hit;
if (Physics.Raycast(camera.position, fwdLook, out hit, checkDistance, layer)) { // layer должен быть тот самый, где у нас предметы, checkDistance настроить по вкусу
var describable = hit.transform.GetComponent<Describable>();
}
2. Проверяем, не нажал ли юзер Enter. Если нажал, то посылаем событие, которое слушает панель с текстом. В событии передаем текст, панель его отображает.
3. Если в пункте 1 describable равно null, это значит что игрок больше не смотрит на предмет, и мы посылаем событие, чтоб панель скрыла текст.