Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。" l! U2 R, D1 ]: m q& ^
引入UnityEngine.EventSystems,用函数判断一下即可 . o0 h# |. d% l
1 ]: g+ H% B' f z% O1 ^7 A
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 取消勾选可以避免。& s( i* S! y4 B+ L
5 l6 _4 d- x; h
unity点击UI跟场景不冲突的方法: # A3 ~: R9 S! M8 R6 F 在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems; 6 c( g f, K4 l; I, g# k- g5 n" T
- S. l, u3 @6 b4 L
, C6 q7 p. \1 Y* A$ d