这是第一人称射击游戏,我试图从一个移动的玩家发射一个射弹。发射方向取决于我点击屏幕的位置。 "发射器"具有固定的火力强度,这意味着射击更加水平的射弹将在撞击地面之前进一步行进,同样,向上射击的射弹将会更高,但是当它因重力撞击地面时将会更少地水平移动。触发矢量由手指触摸屏幕的位置确定,然后乘以公共参数" burningstrength"。到目前为止有意义吗?
我感到困惑的是如何在屏幕上获取手指的位置,我用它来计算"向量"适用于射弹。
我想象通过以下方式做到这一点(我是Unity新手):
空对象(播放器):包含
一旦我有了矢量,我只需将它乘以一个" strikestrength变量并将其应用于来自摄像机位置的射弹。
这是否有意义或有更好的方法吗?
凯文
答案 0 :(得分:0)
您不需要球体只需使用Input.mousePosition
并使用ScreenPointToRay()
从中构建射线。您只需使用ray.Direction
从相机位置获取Vector3
。
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Vector3 shootVector = ray.Diraction;
这应该可以解决问题。 对于触摸界面:
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
Vector3 shootVector = ray.Diraction;