我在这里有一个问题,
我有一个称为弹丸的对象,我想让该弹丸出现在我以屏幕分辨率触摸手机的地方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
和y=90
等。
我该如何解决?
对不起,我的英语不好 !
您的问题是您正在将世界坐标与屏幕位置混合在一起。要解决此问题,您需要使用ScreenToWorldPoint,以便您的代码类似于:
var worldPos : Vector3 = camera.ScreenToWorldPoint (touch.position));
shoot.position.x = worldPos.x;
shoot.position.y = worldPos.y;
这是未经测试的代码,因此仅供参考,因为它可以帮助您理解逻辑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句