0

我的子弹一直在发射我以以下方式实施了一个子弹,但它似乎只是向上,我做错了什么?

public class Player1Controls : MonoBehaviour {

 // Update is called once per frame 
 public float speed;
 Rigidbody2D player;
 public float health;
 private int state;
 public Rigidbody2D Bullet;
 public GameObject Gun;
 void Start ()
 {
     player = GetComponent<Rigidbody2D>();
 }
void Update ()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
     Rigidbody2D bullet1 = (Rigidbody2D)Instantiate (Bullet, Gun.transform.position,Quaternion.identity);
 }
 if(Input.GetKey(KeyCode.W))
 {
     //transform.Translate(Vector2.up * speed);
     player.velocity =(Vector2.up*speed);
     state = 1;
 }

公共类 MoveBullet : MonoBehaviour {

 public float speed;
 // Update is called once per frame
 void Update () {
     Vector3 pos = transform.position;
     Vector3 vel = new Vector3(0, speed * Time.deltaTime, 0);
     pos = pos + transform.rotation * vel;
     transform.position = pos;
 }
4

2 回答 2

1

在vector3上使用x和z。在统一 y 向上,而 z 是“向前”(进入场景)

于 2016-04-18T15:53:07.063 回答
0

你的子弹是否向上射出(好像武器指向天空)?还是目标稍微偏离了目标,子弹最终会高于应有的高度?如果您是第一种情况,请确保您的变量 Vector3 vel 的 y 和 z 坐标与您的相机匹配。X 和 Z 的值为零,Y 的值为非零。如果您的场景设置为 Z 轴指向天空(并且 Y 轴指向屏幕),这可能没问题。但是,如果您的 Z 指向屏幕外,并且您的 Y 指向天空,那将导致您看到的行为。

让我知道这是否有帮助。

于 2016-04-04T05:58:45.373 回答