2016-04-04 5 views
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; 
} 
+0

Вы устанавливаете скорость только в направлении y. Он должен быть вдоль вектора вашего игрока. – schultz

ответ

0

Является ли ваша пуля вверх (как будто оружие указывает на небо)? Или цель слегка выключена, и пуля заканчивается выше, чем она должна? Если вы в первом случае, убедитесь, что ваши переменные Vector3 vel y и z соответствуют вашим камерам. Его значения равны нулю для X и Z и ненулевое значение в Y. Это может быть нормально, если ваша сцена настроена с осью Z, направленной вверх к небу (и ось Y, указывающая на экран). Но если ваш Z указывает, скажите вне экрана и ваш Y указывает на небо, это приведет к поведению, которое вы видите.

Дайте мне знать, если это поможет.

+0

План состоит в том, чтобы всегда стрелять в том же направлении, прямо в Y, но просто поворачивать пулю так, чтобы стрит был правильным, если это имеет смысл? Я редактировал код для того, что я добавил и удалил. То, что я действительно хочу знать, я думаю, это то, как выработать значение для третьего свойства экземпляра на основе нажатия клавиши перед огнем, что еще хуже, так это то, что я даже не знаю, как создать переменную вращения –

1

использовать x и z на векторе3. в единице y вверх, а z - «вперед» (в сцену)