Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。 " W3 B( Z& Y. K* f2 n r4 n! p 引入UnityEngine.EventSystems,用函数判断一下即可 " D. }& P1 Q# r5 X* H
! q" w, H( ]& [- [$ d
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 取消勾选可以避免。+ D* d! l1 ]0 W$ m9 z+ C % I3 Z1 y' `+ S+ dunity点击UI跟场景不冲突的方法: % m4 g+ |8 o/ S" C$ k6 H 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; . ^9 y d: N! j& s
q! p, P+ I3 y3 S2 V( @# l