Unity 鼠标悬停物体 跟随鼠标显示UI 移开消失
时间: 2023-08-11 11:06:56 浏览: 196
你可以通过以下步骤实现这个功能:
1. 创建一个 UI 元素,作为你想要显示的 UI。
2. 将 UI 元素的初始位置设置在屏幕外,确保它在一开始是不可见的。
3. 在场景中创建一个空物体,并将其命名为“UIFollower”。
4. 给该空物体添加一个脚本,用于控制 UI 元素的位置和显示状态。
5. 在脚本中,使用 Raycast 检测鼠标是否悬停在物体上。
6. 如果鼠标悬停在物体上,将 UI 元素的位置设置为鼠标的位置,并将其显示出来。
7. 如果鼠标移出物体的范围,将 UI 元素移回屏幕外,并将其隐藏。
以下是一个示例脚本:
```
public class UIFollower : MonoBehaviour
{
public GameObject uiElement;
void Update()
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.gameObject == gameObject)
{
uiElement.transform.position = Input.mousePosition;
uiElement.SetActive(true);
}
else
{
uiElement.SetActive(false);
}
}
else
{
uiElement.SetActive(false);
}
}
}
```
在上面的代码中,我们首先定义了一个公共变量 uiElement,它是我们要显示的 UI 元素。在 Update() 方法中,我们使用 Raycast 检测鼠标是否悬停在物体上。如果是,我们将 UI 元素的位置设置为鼠标的位置,并将其显示出来。否则,我们将其隐藏。最后,我们将该脚本添加到 UIFollower 空物体上,并将 uiElement 绑定到我们要显示的 UI 元素上。
希望能对你有所帮助!
阅读全文