Input.Touch无法在OSX上运行

时间:2017-07-26 21:11:02

标签: 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");
    if (Input.touchCount > 0) {
        Touch initialTouch = Input.GetTouch (0);
        return initialTouch.phase == TouchPhase.Began;
    }

    return false;
}

当我在实际设备(Android手机)上运行时,它运行得很好,但是当我在运行游戏时在统一编辑器中“点击”时没有任何反应。我正在运行OSX 10.12.2。我需要配置什么来让鼠标模仿触摸事件?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

" touch"之间有一个奇怪的区别。输入和"鼠标"在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标记为您的平台编写单独的输入阅读器,然后让它们全部调用相同的功能。