Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。 , T8 b' v# F* X8 K N' F$ X' i 引入UnityEngine.EventSystems,用函数判断一下即可 + R' ^8 @/ ?; f. }/ L
( Z, A' t3 m( h8 P3 M1 _, D; t
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 取消勾选可以避免。 4 _' ]! T' |1 ^) \! i- G8 t) X; ?" X
9 S O4 `: ?- W" [9 `: ~5 A7 x
unity点击UI跟场景不冲突的方法: , l) q* V! e3 x 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; " {9 T! t. d: f1 _# N# |. x9 B1 S
" X0 }( C% w! F2 M7 R' x% q" _