我的子弹不停地开火 我已经用以下方式实现了一个子弹,但它似乎只是上升,我做错了什么?
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;
}
public class 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;
}
答案 0 :(得分:1)
在vector3上使用x和z。统一y是向上而z是“向前”(进入场景)
答案 1 :(得分:0)
你的子弹向上射击(好像武器指向天空)?或者目标稍微偏离,子弹最终会高于应有的程度?如果您是第一种情况,请确保您的变量Vector3 vel的y和z坐标与您的相机相匹配。对于X和Z,其值为零,在Y中为非零值。如果您的场景设置为Z轴指向天空(并且Y轴指向屏幕),则可能没问题。但是,如果你的Z指向,说出屏幕,你的Y指向天空,那将导致你所看到的行为。
如果有帮助,请告诉我。