using HighlightingSystem; using System.Collections; using System.Collections.Generic; using UnityEditor.SceneManagement; using UnityEditor.SearchService; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.SceneManagement; //============================================================ //支持中文,文件使用UTF-8编码 //@author #AUTHOR# //@create #CREATEDATE# //@company #COMPANY# // //@description: //============================================================ public enum Attribute { /// /// 默认 /// defaultModel, /// /// 安全工器具 /// SafetyToolsAndInstruments, /// /// 工器具 /// ToolsAndInstruments } public enum RightAndWrong { /// /// 默认 /// defaultModel, /// /// 对 /// right, /// /// 错 /// wrong } public class ToolModelClick : MonoBehaviour { public Attribute attribute = Attribute.defaultModel; public RightAndWrong rightAndWrong = RightAndWrong.defaultModel; public UnityEvent onEnter = new UnityEvent(); public UnityEvent onDown = new UnityEvent(); public UnityEvent onDrag = new UnityEvent(); public UnityEvent onExit = new UnityEvent(); public GameObject line; public GameObject Higth; public Highlighter selfHighlighter; //public GameObject tipPrefab; //public GameObject tip; //[ContextMenu("Set")] //public void TTTTT() //{ // tipPrefab = Resources.Load("ModelTips"); //} private void Awake() { if (line != null) line.SetActive(false); if (Higth != null) { Higth.SetActive(false); } selfHighlighter = GetComponent(); selfHighlighter.ConstantOn(); } private void OnMouseEnter() { if (EventSystem.current.IsPointerOverGameObject()) return; onEnter?.Invoke(); var current = SceneManager.GetActiveScene(); if (current.name == "工具间场景") UIManager.Instance.SetThreeDTip(gameObject.name); //tip = Instantiate(tipPrefab); //tip.GetComponentInChildren().text = gameObject.name; //tip.transform.localPosition = transform.localPosition; //tip.transform.localScale = Vector3.one; //tip.transform.LookAt(Camera.main.transform.position); //tip.transform.localEulerAngles = new Vector3(90f, 0, 0); } private void OnMouseDown() { if (EventSystem.current.IsPointerOverGameObject()) return; onDown?.Invoke(); ToolsItemManager.Instance.CreatToolItem(gameObject); UIManager.Instance.SetThreeDTip(""); Destroy(gameObject); } private void OnMouseDrag() { if (EventSystem.current.IsPointerOverGameObject()) return; onDrag?.Invoke(); } private void OnMouseExit() { if (EventSystem.current.IsPointerOverGameObject()) return; onExit?.Invoke(); UIManager.Instance.SetThreeDTip(""); //Destroy(tip); } }