【问题标题】:Input.Touch not working on OSXInput.Touch 在 OSX 上不起作用
【发布时间】:2017-07-26 21:11:02
【问题描述】:

我是 Unity 的初学者,我创建了一个函数,当检测到触摸时简单地设置文本元素的文本,如下所示:

// Update is called once per frame
void Update () {
    if (didTap ()) {
        print ("did tap!");
        tapText.text = "TAP!";
    }
}

private bool didTap() {
    print ("checking didtap");
    if (Input.touchCount > 0) {
        Touch initialTouch = Input.GetTouch (0);
        return initialTouch.phase == TouchPhase.Began;
    }

    return false;
}

当我在实际设备(Android 手机)上运行它时,它可以完美运行,但是当我在运行游戏时在统一编辑器中“单击”时,什么也没有发生。我正在运行 OSX 10.12.2。我需要配置什么来让鼠标模拟触摸事件?

【问题讨论】:

    标签: macos unity3d


    【解决方案1】:

    您可以使用UnityRemote 应用程序将 Unity 的播放模式窗口复制到您的移动设备上。这将允许您与手机的功能进行交互,同时仍然在您的计算机上运行 Unity。

    UnityRemote 需要在 Unity 中进行一些设置以及下载应用程序。考虑观看此视频:Unity Remote Setup Tutorial

    或者,请参阅 Hellium 在 this question 中的回答,结合鼠标点击,仅根据所使用的设备编译代码。

    【讨论】:

    • 但是这款游戏是专门针对移动设备的。我只想检测触摸,但能够在统一编辑器中触发该触摸。那可能吗?还是两者都检查?
    • 在这种情况下,您可以在手机上使用UnityRemote 应用程序,该应用程序实质上是将您的设备连接到您的计算机以复制手机上的播放模式。
    • 非常感谢!我会调查的!如果您编辑答案,我会接受它:)
    • 已编辑!智者的话 - unityremote 有时设置起来很棘手。耐心等待!
    【解决方案2】:

    Unity 中的“触摸”输入和“鼠标”输入之间有一个奇怪的区别。当您在编辑器中运行时,Input.touchCount 将始终返回 0,但 Input.GetMouseButtonDown(0) 同时适用于编辑器以及在移动构建中第一次或多次触摸

    您有两个选项可以通过代码解决此问题(您的另一个选项是the remote ryemoss mentioned):

    • 如果您只使用过一次触摸,请使用Input.GetMouseButtonDown(0)Input.GetMouseButtonUp(0)
    • 使用#if UNITY_IOS#if UNITY_ANDROID#if UNITY_EDITOR 标签为您的平台编写单独的输入阅读器,然后让它们都调用相同的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-09
      • 2017-02-19
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      相关资源
      最近更新 更多