Unity有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。 ! Q* e. B1 A$ q& N+ t! d# U 引入UnityEngine.EventSystems,用函数判断一下即可; ~8 j5 Z: o. h* _+ j. A( p) q
$ x$ s L. C% {3 D4 K
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 取消勾选可以避免。1 @+ H" {- W9 h! m% b
/ H, G- ]! c3 L& p& S
unity点击UI跟场景不冲突的方法:9 _% d3 _$ X2 e' e
在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可,需要引入命名空间using UnityEngine.EventSystems;) q N; t- M7 p1 S3 f # L- j# F% s4 ] ; y3 P. i$ [+ L/ ?