【问题标题】:Unity 2D object position with touch position AndroidUnity 2D对象位置与触摸位置Android
【发布时间】:2014-10-25 11:50:06
【问题描述】:

我这里有问题,

我有一个叫做弹丸的物体,我想让那个弹丸出现在我触摸手机的地方,屏幕分辨率为1090x1820,我的逻辑是:

#pragma strict

var projectile:Transform;
private var shoot:Transform;

function Start () {

}


function Update () { 

     for (var i = 0; i < Input.touchCount; ++i) {
         var touch:Touch = Input.GetTouch(i);
         if (touch.phase == TouchPhase.Began) {
            shoot = Instantiate(projectile) as Transform;
            shoot.position.x = touch.position.x;
            shoot.position.y = touch.position.y;
         }
     }
 }

这段代码运行良好,除了弹丸没有出现在屏幕上。 不知何故,我尝试在统一编辑器中放置一个对象,它显示x = -2 和y = -1 或x =-1 和y =-5 等等。我还尝试调试触摸位置,它显示x= 300 和@987654328 @等

我该如何解决这个问题?

对不起我的英语不好!

【问题讨论】:

    标签: android unity3d unityscript


    【解决方案1】:

    您的问题是您将世界坐标与屏幕位置混合在一起。要解决这个问题,您需要使用 ScreenToWorldPoint,这样您的代码将类似于:

        var worldPos : Vector3 = camera.ScreenToWorldPoint (touch.position));
    
        shoot.position.x = worldPos.x;
    
        shoot.position.y = worldPos.y;
    

    这是未经测试的代码,因此仅供参考,因为它可以让您理解逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多