В этой статье я покажу вам один из вариантов реализации такой полезной штуки, как отображение имени объекта при наведении на него курсора или прицела.
Запустите игровой движок Unity 5 и создайте простую сцену и удалите со сцены Main Camera. Добавьте объект Plane и на нем разместите еще три объекта: Cube, Sphere и FPSController.

FPSController будет служить нам персонажем, которым мы будем управлять. Найти его можно в стандартной папке вашего проекта Assets/ Standart Assets/ Characters/ FirstPersonCharacters/ Prefabs.
Создайте два С# скрипта и назовите их, к примеру, GUIName и Name.
Откройте скрипт GUIName и вставьте туда код который расположен ниже.
using UnityEngine;
using System.Collections;
public class GUIName : MonoBehaviour {
public Transform cam1; // Камера
RaycastHit rch1;// луч который будет выходить из камеры
public bool _showName; // переменная
void Update () {
Vector3 Direction = cam1.TransformDirection(Vector3.forward); //
if (Physics.Raycast(cam1.position, Direction, out rch1, 3)) //заставляет бить из нашей камеры луч на дистанцию равную 3
{
if (rch1.collider.GetComponent<Name>()) // и если этот луч встретился с коллайдером объекта на котором есть скрипт Name,
{
_showName = true; // то переменная становится равна true.
}
}
}
public void OnGUI()
{
if (_showName) // если переменная становится равна true
{
GUI.Label(new Rect((Screen.width) / 2, (Screen.height) / 2, 125, 25), " " + rch1.collider.GetComponent<Name>().nameGui); // то отображаем на экране персонажа, в указанном месте, значение nameGUI, которое берем из скрипта Name.
}
}
}
Затем откройте скрипт Name и добавте всего одну строчку
using UnityEngine;
using System.Collections;
public class Name : MonoBehaviour {
public string nameGui;
}
Перетащите скрипт GUIName на нашего персонажа и укажите в параметре Cam1 его камеру.

На куб и сферу поместите скрипт Name и в поле nameGui напишите произвольные имена.

Запустите Игру и подойдите к любому из объектов, на экране должно отобразится то что вы написали в nameGUI.









