Macos 输入。触摸不在OSX上工作

Macos 输入。触摸不在OSX上工作,macos,unity3d,Macos,Unity3d,我是Unity的初学者,创建了一个函数,当检测到触摸时,该函数只需设置文本元素的文本,如下所示: // Update is called once per frame void Update () { if (didTap ()) { print ("did tap!"); tapText.text = "TAP!"; } } private bool didTap() { print ("checking didtap"); i

我是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手机)上运行时,它工作得非常好,但当我在运行游戏时在unity编辑器中“单击”时,什么都没有发生。我正在运行OSX 10.12.2。需要配置鼠标模拟触摸事件吗?

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

UnityRemote需要在Unity中进行一些设置并下载应用程序。考虑看这个视频:


或者,在中查看Hellium的答案,同时点击鼠标,以便仅根据所使用的设备编译代码。

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

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

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

但游戏是针对移动设备的。我只想检测触摸,但能够在unity编辑器中触发触摸。可能吗?或者两者都要检查?在这种情况下,你可以使用手机上的应用程序,它可以将你的设备连接到你的电脑,从而复制手机上的播放模式。太棒了,谢谢!我会注意的!如果你编辑答案,我会接受:)编辑!单词给智者-unityremote有时设置起来很棘手。耐心点!