Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。 / F' i4 x0 P9 _) l 引入UnityEngine.EventSystems,用函数判断一下即可: a! b6 m2 D/ t# P' ^5 E
& C+ B2 f$ R% W2 l5 t. E9 p
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 取消勾选可以避免。 - [3 j+ D5 Q* l ! G( r, q6 ` v; bunity点击UI跟场景不冲突的方法: [7 _3 H( \4 l) k& A) S 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; ~, g( E2 _ V5 l' d ) i$ F% J2 X; ?( y$ R2 @6 p" z7 O2 I5 ?/ q/ o