переменная уровня класса: bool isVis=false;
void OnGUI(){
if (isVis)
{
GUI.Box(new Rect(Input.mousePosition.x + 2, Screen.height - Input.mousePosition.y + 2, 128, 72), "Tool Tip Text");
}
}
private void OnMouseEnter()
{
isVis = true;
}
private void OnMouseExit()
{
isVis = false;
}
добавьте это на свой объект, для которого вы хотите всплывающую подсказку, затем вы можете внести некоторые коррективы.это даст вам окно с текстом «Tool Tool Text» в позиции мыши, когда вы наводите курсор мыши на объект.ваш объект будет нуждаться в коллайдере.
еще до точки вашего вопроса: вы ищете эту строку:
new Rect(Input.mousePosition.x + 2, Screen.height - Input.mousePosition.y + 2, 128, 72)
, чтобы получить правильную позицию y вваше усилие вы должны вычесть mousePosition.y
из Screen.Height
, также важно отметить +2
, так как если вы рисуете прямо на мыши, она будет заикаться между подсказкой и курсором
, как я сказалниже, если вы сохраните прямоугольник подсказки в переменной, которая установлена в Update ()
в вашем OnGUI, вы можете сделать это:
GUI.Box(myRect, "Tool Tip Text");
GUI.DrawTexture(new Rect(myRect.x,myRect.y+20,64,64),Resources.Load("Sprites/sample.png")) ;
(метод загрузки захватит изображение,sample.png
из вашей папки Resources/Sprites
, если у вас нет этой папки, вы можете создать ее или изменить путь, но путь должен быть в папке с именем Resources
, которую вы также можете сделать
GUI.Label(new Rect(myRect.x,myRect.y+84,myRect.width,24),"Item Description")) ;
Самое приятное то, что вы можете загрузить пользовательский скин GUI, установить собственные стили и динамически изменять каждый элемент GUI. Это означает, что если вы хотите белый заголовок, золотое описание и рамкувокруг вашего изображения, это просто. если вы хотите, чтобы СэмСтили плей, дайте мне знать!