嘿,我想知道你是否可以将GUI.Label绘制到鼠标位置,以及如何做到这一点? 我目前在Unity C#中编写脚本。
脚本布局:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour {
public bool Hover = false;
void OnMouseOver()
{
Hover = true;
}
void OnMouseExit()
{
Hover = false;
}
void OnGUI()
{
if(Hover = true)
{
GUI.Label(new Rect(//Transform to mouse positon))
}
}
}
答案 0 :(得分:3)
使用Input.mousePosition
创建传递给Rect
的{{1}}。请注意,这两个都使用屏幕坐标但屏幕左下角的GUI.Label
是(0,0),而Input.mousePosition
使用的Rect
左侧是屏幕是(0,0)。因此,您需要像这样翻转y值:
GUI.Label
有关详情,请参阅Unity Input.mousePosition和GUI.Label
上的文档答案 1 :(得分:-1)
您需要将屏幕坐标(鼠标位置)转换为GUI坐标。
void OnGUI()
{
if(Hover = true)
{
Vector2 screenPos = Event.current.mousePosition;
Vector2 convertedGUIPos = GUIUtility.ScreenToGUIPoint(screenPos);
GUI.Label(new Rect(convertedGUIPos.x, convertedGUIPos.y, width, height))
}
}
我实际上没有测试过代码。
更多信息: https://docs.unity3d.com/ScriptReference/GUIUtility.ScreenToGUIPoint.html