Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。' u0 k `% P0 \
引入UnityEngine.EventSystems,用函数判断一下即可/ p8 j/ e5 D2 l* \
1 J4 @0 d; z- T/ \ b. E/ w
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using DG.Tweening;
- using UnityEngine.EventSystems;
- public class PlayerController : MonoBehaviour
- {
- private void Update()
- {
- if (EventSystem.current.IsPointerOverGameObject()) return;
- if (Input.GetMouseButtonDown(0))
- {
- Debug.Log("点击屏幕");
- }
- }
- }
这个方法会将点击Text的时候也会当作点击UI,将raycast target 取消勾选可以避免。6 Y# t, v9 A2 |, @5 [
% Q! {# j$ B: E! r
unity点击UI跟场景不冲突的方法:# p2 s! t3 I5 V2 o, I/ o( ]* e f: s
在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems;- k' j9 A6 j- X% @) s9 X" E
2 \& z2 i" ?+ Y. ]
1 D* H, L$ U$ f' z0 g0 a
|