Unity3D:没有鼠标瞄准的TPS拍摄

时间:2015-03-19 10:16:46

标签: mobile unity3d

我目前正在开发一些TPS游戏。我有我的玩家模型和相机拍到它的肩膀,并在玩家面前的一些空游戏对象计算子弹的矢量(截图中的黄色菱形)。

我正在为移动平台开发,所以没有鼠标;只是那个指向枪的方向的空游戏对象。

因此,当发生火灾事件时,我想对子弹施加力,它将向正确的方向飞行。这是我的代码

b.transform.position = transform.position;
b.transform.position += transform.forward;
b.SetActive(true);

var rb = b.GetComponent<Rigidbody>();

print((Aim.position - transform.position).normalized);

rb.AddForce((Aim.position - transform.position).normalized * Thrust);

Aim 是指向方向的EmptyGameObject, transform 是GunEnd游戏对象, b 是我的子弹实例。因此,如果我尝试从默认玩家位置拍摄,从GunEnd到Aim对象的游戏正确。 Correct bullet

但是,如果我将角色旋转超过90度,则子弹开始以一些奇怪的轨迹飞行 Not good trajectory

那么,任何人都可以帮助我纠正发送子弹吗?

1 个答案:

答案 0 :(得分:0)

当您使用b.transform.position += transform.forward;移动它的位置时,如果您瞄准时变换不旋转(可以在屏幕截图中看到,它不会像transform.rotate中的组件在y)中保持不变。尝试使用Aim找到的向量移动它,如下所示:

b.transform.position += (Aim.position - transform.position).normalized;