Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。: q" P6 K$ p. q7 X+ m
引入UnityEngine.EventSystems,用函数判断一下即可: x5 Z0 @0 x& c; `; m4 P
' f3 @% A2 {7 b: O0 d) K! X( Y6 r
- 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 取消勾选可以避免。
* F) U E$ r/ X: j! c. w
9 x; [7 b4 @) w8 B0 P) A5 t7 sunity点击UI跟场景不冲突的方法:
/ K* e6 G, z6 O! I 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems;0 p0 D) A7 a1 q: j
m9 z+ t5 S& w( @" B3 y
& e; |8 t& O4 d4 J |