2015-02-03 5 views
0

이제 초보자가 화합했습니다. 지금 나는 웜 게임과 같은 방향 전환 게임을하고 있습니다. 하지만 어떤 이유로 공격 스크립트는 왼쪽의 유닛에서만 작동하고 오른쪽의 유닛에서는 작동하지 않습니다. 특히, 인스턴스화하는 총알은 오른쪽에있는 인스턴스에 대해 해고 될 때 잘못된 방향으로 이동하지만 왼쪽에있는 것과 똑같이 예상대로 작동합니다. 나는 문자 버튼을위한 별도의 스크립트를 가지고 있지만 총알에는 동일한 스크립트를 사용하고 있습니다.글 머리 기호가 AddForce로 잘못 찍습니다.

총알 스크립트

public float speed; 
public float posX, posY; 

// Use this for initialization 
void Start() { 
    rigidbody2D.AddForce (new Vector2 (posX, posY), ForceMode2D.Impulse); 
} 


// Update is called once per frame 
void Update() { 
    //transform.Translate (speed * Time.deltaTime, 0, 0); 
} 

void OnCollisionEnter2D(Collision2D c){ 
    if (c.gameObject.tag == "Base") { 
     Destroy(gameObject); 
     Destroy(c.gameObject); 
    } 
    else if(c.gameObject.tag == "Player2"){ 
     Destroy(gameObject); 
     Destroy(c.gameObject); 
    } 
} 

void OnBecameInvisible() { 
    Destroy(gameObject); 
} 

게임 오브젝트의 이동 당신은 같은 힘을 적용 총알

public GameObject go; 

// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 
     if(gameObject.tag == "Player2"){ 
      if(Input.GetKeyUp(KeyCode.Backspace)){ 
       Instantiate(go,transform.position,transform.rotation); 
      } 
     } 

} 

}

+0

어떻게'posX'와'posY'를 계산합니까? 그들은 방향을 설정하는 것 같습니다. – maZZZu

+0

한 번 비슷한 문제가있었습니다. 총알과 사수가 같은 충돌 층에 있었기 때문입니다. 총알이 잘못된 방향으로 발사되는 것처럼 보였지만 일단 층을 분리하면 잘 움직였습니다. – Catwood

답변

0

의 조립식입니다

문자 스크립트 (posX, posY) y의 모든 우리 총알, 그래서 그들은 모두 오른쪽으로 이동합니다 (오른쪽 방향과 반대 방향으로 올바른 방향).

당신이해야 할 일은 변수를 사용하여 글 머리 기호를 발사 할 각 개별 게임 개체의 방향을 추적하고 그 방향을 글 머리 기호에 AddForce()으로 사용하는 것입니다. 또는 게임 개체가 다른 절반으로 이동/통과하지 않으면 오른쪽 및 왼쪽 게임 개체를 구별하고 해당하는 힘 벡터를 사용해야합니다.

관련 문제