Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。. X# v* j! Y$ u1 @+ H7 w$ T
引入UnityEngine.EventSystems,用函数判断一下即可, T. c; @1 d; R; p
! z! {$ w4 G. X: R: v1 Y. X5 [; z
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 取消勾选可以避免。5 V: @5 U" D' J" e; `
2 c! k, d& y9 R$ ]" f
unity点击UI跟场景不冲突的方法: ' \; ]: o, F$ E& D4 E9 g 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; m( w0 k+ w2 J4 m4 t. H ( D: G- P! ?; Q* e! q- S/ l4 c( ^. o. P7 Q; F3 I# {