相关疑难解决方法(0)

使用Unity3D的IPointerDownHandler方法,但使用"整个屏幕"

在Unity中,你需要检测场景中某些东西的手指触摸(手指绘图).

在现代Unity中执行此操作的唯一方法非常简单:


第1步.在该物体上放置一个对撞机.("地面"或其他任何东西.)1

步骤2.在相机的"检查器"面板上,单击以添加物理雷达(相关的2D或3D).

步骤3.只需使用下面的示例A中的代码.

(提示 - 不要忘记确保有一个EventSystem ......有时Unity会自动添加一个,有时不会!)


太棒了,不容易.Unity最终通过UI层正确处理un /传播.在桌面,设备,编辑器等上均匀而完美地工作.万岁Unity.

都好.但是如果你想在屏幕上画画呢?

因此,您非常简单地想要"在屏幕上"从用户那里滑动/触摸/绘图.(例如,简单地说就是操作轨道摄像机.)就像在任何普通的3D游戏中,摄像机四处奔跑并移动.

你不希望手指在世界空间中的某个物体上的位置,你只需要抽象的"手指运动"(即在玻璃上的位置).

你用什么对撞机?没有对撞机你能做到吗?由于这个原因,添加对撞机似乎很愚蠢.

我们做的是这样的:

我只是做了某种平面对撞机,实际上是把它安装在相机下面.所以它只是坐在相机平截头体上并完全覆盖屏幕.

在此输入图像描述

(对于代码,则不需要使用ScreenToWorldPoint,因此只需使用示例B中的代码 - 非常简单,效果很好.)

我的问题是,使用我所描述的"镜头下相机"似乎有点奇怪,只是为了触摸玻璃.

这是什么交易?

(注意 - 请不要回答涉及Unity古老的"Touches"系统,这个系统今天对于真实项目无法使用,你不能忽视.UI使用传统方法.)


代码示例A - 在场景对象上绘图.使用ScreenToWorldPoint.

 using UnityEngine;
 using System.Collections;
 using UnityEngine.EventSystems;

 public class FingerMove:MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
 {
     public void OnPointerDown (PointerEventData data)
     {
         Debug.Log("FINGER DOWN");
         prevPointWorldSpace =
                 theCam.ScreenToWorldPoint( data.position );
     }

     public void OnDrag (PointerEventData data)
     {
         thisPointWorldSpace =
                theCam.ScreenToWorldPoint( data.position ); …
Run Code Online (Sandbox Code Playgroud)

c# touch unity-game-engine

18
推荐指数
2
解决办法
7917
查看次数

如何让游戏玩法忽略Unity3D中UI按钮的点击?

我正在尝试创建一个3D点击以在Unity3D中移动游戏.

我添加了一个UI Button(使用UnityEngine.UI),我想最终点击以打开和关闭运行.

然而,点击Button实际上似乎是点击进入场景(在我的情况下UnityEngine.UI.Button导航)并导致我的播放器移动到不同的位置.

如何禁用光线投射以单击UI按钮或以某种方式让UI捕获自己的事件?

我一直在使用典型的Unity3D代码让用户进入游戏玩法等

if (Input.GetMouseButtonDown(0))
  {
Run Code Online (Sandbox Code Playgroud)

如果我尝试这种方法也一样

if( Input.touches.Length > 0 )
        {

        if ( Input.touches[0].phase == TouchPhase.Began )
            {
Run Code Online (Sandbox Code Playgroud)

在iOS,Android和桌面上似乎就是这种情况.

这似乎是一个基本问题,点击UI(Button等)似乎落入游戏玩法.

c# unity-game-engine navmesh

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

unity-game-engine ×2

navmesh ×1

touch ×1