Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。( m# t+ A, F6 O
引入UnityEngine.EventSystems,用函数判断一下即可+ r5 c% v5 v# q7 R3 g * Q2 z# S \, n, J- V, l& v0 i' N
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 [# @+ d/ p# e# D
8 Y- N) t* l2 m; _8 M8 r' g$ x6 L
unity点击UI跟场景不冲突的方法:% S4 n2 ?& s; @$ w6 G0 U$ k6 B0 ~
在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems;% h, P1 p4 a6 j. _5 c( u$ e5 y
9 E) [ T/ P+ W8 K& z$ t