Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。7 K' @* U! [3 R) h
引入UnityEngine.EventSystems,用函数判断一下即可 ! u, u j+ Q4 ]; C/ c
1 o6 \1 A: S) l% t1 U9 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 取消勾选可以避免。 ! z6 m0 H$ N; |2 ~2 y/ k ) r$ W4 {4 W, z, {3 V0 x% Q0 r: _0 o8 punity点击UI跟场景不冲突的方法:! D' n ], _# R' b' K
在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; - H/ j: M' g r! S" b% j$ Q ! j2 O: i$ Z% l, n: o9 V {) r3 x$ [9 k J