做个记录,也方便自己以后查看,大家共同交流
源代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestShow : MonoBehaviour
{
//要显示的ui
public RectTransform tip;
// Update is called once per frame
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
bool raycast = Physics.Raycast(ray, out hit);
if (raycast)
{
GameObject go = hit.collider.gameObject;
tip.gameObject.SetActive(true);
tip.GetComponentInChildren<Text>().text = go.GetComponent<ObjectTips>().ObjectName;
FollowMouse(hit .point);
}
else
{
tip.gameObject.SetActive(false);
}
}
//ui位置实时变化
void FollowMouse(Vector3 position)
{
Vector3 screenPoint = Camera.main.WorldToScreenPoint(position);
tip.anchoredPosition = screenPoint +new Vector3(10f, 5f, 0);
}
}
挂载在任意物体上,记得把tip赋值,在3D物体上加collider组件,射线才会检测到物体
using UnityEngine;
public class ObjectTips : MonoBehaviour
{
//物体显示名称
//挂在物体上
public string ObjectName;
}