Unity全局屏幕点击特效
- IT业界
- 2025-08-25 20:45:02

思路:
1、生成一个点击特效实例,每点击屏幕,就调整特效实例的位置并控制特效的显隐状态即可。
2、需要注意要保证在编辑器开发时或手机上运行时都要显示点击效果。
方案一 (推荐) using UnityEngine; using UnityEngine.EventSystems; public class ScreenClick : MonoBehaviour,IPointerDownHandler { public GameObject effectPrefab;//特效预制体 private GameObject clickEffectInstance; private RectTransform _Rect; void Start() { _Rect = GetComponent<RectTransform>(); clickEffectInstance = Instantiate(effectPrefab, transform); clickEffectInstance.SetActive(false); } public void OnPointerDown(PointerEventData eventData) { clickEffectInstance.SetActive(false); RectTransformUtility.ScreenPointToWorldPointInRectangle(_Rect,eventData.position,eventData.enterEventCamera,out Vector3 pos); clickEffectInstance.transform.position = pos; clickEffectInstance.SetActive(true); } } 方案二 using UnityEngine; public class ScreenClick : MonoBehaviour { public GameObject effectPrefab;//特效预制体 public Camera _Camera; private GameObject clickEffectInstance; private RectTransform _Rect; void Start() { _Rect = GetComponent<RectTransform>(); clickEffectInstance = Instantiate(effectPrefab, transform); clickEffectInstance.SetActive(false); } void Update() { #if UNITY_EDITOR if (Input.GetKeyDown(KeyCode.Mouse0)) { clickEffectInstance.SetActive(false); var screenPos = Input.mousePosition; ShowClickEffect(screenPos); Debug.Log("222"); } #elif UNITY_ANDROID||UNITY_IOS if (Input.touchCount > 0) { var touch = Input.GetTouch(0); if (touch.phase == TouchPhase.Began) { clickEffectInstance.SetActive(false); var screenPos = Input.GetTouch(0).position; ShowClickEffect(screenPos); Debug.Log("333"); } } #endif } /// <summary> /// 显示点击特效 /// </summary> /// <param name="screenPos">点击的屏幕位置</param> private void ShowClickEffect(Vector2 screenPos) { RectTransformUtility.ScreenPointToWorldPointInRectangle(_Rect, screenPos, _Camera, out Vector3 pos); clickEffectInstance.transform.position = pos; clickEffectInstance.SetActive(true); } }Unity全局屏幕点击特效由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Unity全局屏幕点击特效”