【问题标题】:how to move object in unity 2d using touch input in c#如何使用 c# 中的触摸输入在统一 2d 中移动对象
【发布时间】:2018-09-18 17:08:53
【问题描述】:

我想在 android 的触摸输入上移动对象以在 c# 中实现统一 2d

我有一个大头针对象,想在触摸它时移动大头针,并根据触摸移动移动它,并在触摸放下它的地方停止对象。

我还想检查通过触摸移动的图钉是否掉落在屏幕上的某些点,例如您需要在其中放置图钉对象的另一个框对象。

我是统一平台的新手,正在为 object.It 和 android 游戏的触摸输入移动而苦苦挣扎。 我不想使用统一资产商店中的触摸脚本在 android 中进行触摸。我需要一个脚本,以便我可以将其附加到对象。 请帮忙。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您可以使用 OnMouseDrag(),因为它适用于编辑器和移动设备,因此更易于测试。它适用于 3D 对象,只要它们有碰撞器。

    • 创建一个脚本。

    • 将以下函数添加到脚本中并将其附加到您的精灵。

    • 确保在你的精灵中添加一个 collider2d,否则它将无法工作。

      void OnMouseDrag() {
      Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, -1*(Camera.main.transform.position.z));
      Vector3 objPosition = Camera.main.ScreenToWorldPoint(mousePosition);
      transform.position = objPosition; }
      

    【讨论】:

    • 它会响应触摸,但它也会在触摸时移动整个屏幕上的对象,然后如果它找到对撞机则到达它的位置。它也会将对象移动到盒子对撞机上,然后如果我们在盒子对撞机对象上释放它,然后它在附近的空位置上移动。这意味着如果我将它拖到屏幕的末尾,它将一直到结束任何对撞机都不会阻止它拖动它,然后如果我释放它它会继续在屏幕上找到的空白处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多