using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEditor.UIElements; using UnityEngine.UI; namespace DefaultNamespace { public class ToolsCameraComponent : MonoBehaviour { private IRaycastable _raycastComponent; private IUIFollow _uiFollow; public RectTransform ui; private void CheckToolModel() { if (EventSystem.current.IsPointerOverGameObject()) { return; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 2)) { bool raycast = Physics.Raycast(ray, out hit); GameObject hitObject = hit.collider.gameObject; //ToolBase tb = hit.transform.GetComponent(); if (raycast) { if (hitObject.CompareTag("Tools")) { ui.gameObject.SetActive(true); ui.GetComponentInChildren().text = hit.collider.gameObject.name; ui.transform.position = Input.mousePosition + new Vector3(10, 10, 0); } else { ui.gameObject.SetActive(false); } } } else { ui.gameObject.SetActive(false); } } void Update() { // 调用射线功能 CheckToolModel(); } } } //{ // [SerializeField] // private Camera mainCamera; // 主摄像机 // [SerializeField] // private GameObject uiPanel; // UI Panel,负责显示物品信息 // [SerializeField] // private TMP_Text itemNameText; // private GameObject lastHoveredObject; // 记录上一次悬停的物体 // void Start() // { // uiPanel.SetActive(false); // } // void Update() // { // Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition); // RaycastHit hit; // bool raycast = Physics.Raycast(ray, out hit); // if (raycast) // { // GameObject hitObject = hit.collider.gameObject; // if (hitObject.CompareTag("Tools")) // { // if (hitObject != lastHoveredObject) // { // Debug.Log(hitObject.name); // HandleHoverEnter(hitObject); // lastHoveredObject = hitObject; // } // uiPanel.transform.position = Input.mousePosition; // } // } // else // { // if (lastHoveredObject!=null) // { // HandleHoverExit(); // } // } // } // void HandleHoverEnter(GameObject hoverObject) // { // itemNameText.text = hoverObject.name; // uiPanel.SetActive(true); // } // void HandleHoverExit() // { // uiPanel.SetActive(false); // lastHoveredObject = null; // } //} //}