C# 如何使用c中的触摸输入在unity 2d中移动对象#

C# 如何使用c中的触摸输入在unity 2d中移动对象#,c#,unity3d,C#,Unity3d,我想在c#中的android for unity 2d中移动触摸输入上的对象 我有一个pin对象,想在触摸它时移动该pin,并根据触摸移动该pin,并在触摸掉落的地方停止该对象 此外,我还想检查触摸移动的pin是否在屏幕上的某些点落下,例如,需要落下pin对象的另一个框对象 我是unity平台的新手,正在为对象的触摸输入运动而奋斗。这是一款android游戏。 我不想在android中使用unity资产存储库中的touchscript,我需要一个脚本,以便将其附加到对象。 请提供帮助。您可以使用

我想在c#中的android for unity 2d中移动触摸输入上的对象

我有一个pin对象,想在触摸它时移动该pin,并根据触摸移动该pin,并在触摸掉落的地方停止该对象

此外,我还想检查触摸移动的pin是否在屏幕上的某些点落下,例如,需要落下pin对象的另一个框对象

我是unity平台的新手,正在为对象的触摸输入运动而奋斗。这是一款android游戏。 我不想在android中使用unity资产存储库中的touchscript,我需要一个脚本,以便将其附加到对象。 请提供帮助。

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

  • 创建一个脚本

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

  • 请确保添加一个碰撞的R2D到您的精灵,否则它将无法工作

    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; }
    

它对触摸做出响应,但触摸时它也会在屏幕的整个部分移动对象,如果找到碰撞器,它会移动到其位置。它也会将对象移动到框碰撞器上方,然后如果我们在框碰撞器对象上释放它,它会移动到附近的空位置。这意味着,如果我将其拖动到屏幕末端,它将一直移动到结束任何对撞机都不会阻止它从上面拖动它,然后如果我重新释放它,它会出现在屏幕上的空白处。