以精确的角度射击弹丸

阿卡什·阿加瓦尔(Akash Agarwal)

我正在尝试开发一种简单的射击机制,该机制根据射击者的旋转角度实例化“射击”。我的问题是,即使射手的角度为0 *,射击角度也为45 *(这是我猜的问题,因为当射手的角度为45 *时,射击角度精确90 *)。

射角(0,0,0)

在此处输入图片说明

射角(0,0,45)

在此处输入图片说明

注意-球始终从黑色扁平圆柱物体的中心发射。

要求的代码:

public class ShotMoveScript : MonoBehaviour {
    public static float xForce;
    public Transform shott;
    void Update () {
        if(Input.GetKey(KeyCode.Q))
        {
            transform.Rotate(Vector3.forward, 5f);
        }

        if(Input.GetKey(KeyCode.E))
        {
            transform.Rotate(Vector3.forward, -5f);
        }

        if(Input.GetKey(KeyCode.Space))
        {
            xForce += 0.2f;
        }

        if(Input.GetKeyUp(KeyCode.Space))
        {
            Instantiate(shott, transform.position, transform.rotation);
        }

    }
}

附加到实例化的球上的脚本:

public class MovementScript : MonoBehaviour {
    void Update () {
        Rigidbody2D rb;
        rb = GetComponent<Rigidbody2D> ();
        rb.gravityScale = 0.8f;
        transform.Translate( new Vector3(1,1,0) * ShotMoveScript.xForce * Time.deltaTime, Space.Self);
    }
}
天刃

使用第三个参数旋转实例化球时,旋转球(请参阅参考资料)。之后,应用指向(1,1)的Vector,这样球将相对于其局部旋转沿该方向移动

Quaternion.identity作为第三个参数传递Instantization方法,或沿(1、0)方向移动球。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章