Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。 ! p. g$ G7 k& O 引入UnityEngine.EventSystems,用函数判断一下即可 $ g+ }( G: L1 o/ T 2 q4 S0 u Z3 B
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 取消勾选可以避免。) G0 m8 e) T i# c 5 M. `7 z5 }; m! c0 e, uunity点击UI跟场景不冲突的方法: # ^0 \* u$ ^3 s7 D% C 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; ( e! E- \# w& I9 t* T+ P9 K" ^ " j/ Q/ T5 s0 m m6 W+ R d* Q/ j; |' t 9 }7 o/ B1 u6 W/ ~. U3 X# Z" j) T6 h