2016-09-01 1 views
0

In meiner Einheit 2D-Spiel habe ich Kugel mit Spieler Richtung instanziieren aber bullet bullet instanziieren auf der rechten Seite des Spielers Ich versuche zu bullet instanziieren auf der linken Seite Player.Dies ist mein Spieler bulletInstanziieren Spieler Kugel auf der linken Seite in Einheit

public Rigidbody2D playerWeapon; 


void Start(){ 

    InvokeRepeating ("PlayerWeapon",1.0f,1.0f); 
} 

void PlayerWeapon() 
{ 
     Rigidbody2D bPrefab = Instantiate (playerWeapon, new Vector3 (transform.position.x, transform.position.y, transform.position.z), Quaternion.identity) as Rigidbody2D; 
} 
+0

Was meinst du mit der linken und rechten Seite? Sie möchten die Kugel in die Richtung des Spielers instanziieren? – Programmer

+0

ja genau das ... – Chetan

+0

In meinem Code bullet instanziieren perfekt, aber hinter dem Spieler möchte ich Kugel zu Player Facing instanziieren. – Chetan

Antwort

0

Verwenden Sie transform.forward sollte es tun. Sie können auch einen Offset verwenden, um die Entfernung zu ändern, aus der das Geschoss aus der Entfernung des Spielers hervorgehen soll. Versuchen Sie den Code unten:

public Rigidbody2D playerWeapon; 

void Start() 
{ 
    InvokeRepeating("PlayerWeapon", 1.0f, 1.0f); 
} 

void PlayerWeapon() 
{ 
    float offset = 5; 
    Vector3 plyrPos = transform.position; 
    Quaternion plyrRot = transform.rotation; 
    Vector3 plyrDir = transform.forward; 
    Vector3 spawnPos = plyrPos + plyrDir * offset; 
    Rigidbody2D bPrefab = Instantiate(playerWeapon, spawnPos, plyrRot) as Rigidbody2D; 
} 

EDIT:

Sie auch diese stattdessen tun könnte:

void PlayerWeapon() 
{ 
    float shootSpeed = 10f; 
    float offset = 5; 
    Rigidbody2D bPrefab = Instantiate(playerWeapon, transform.position + (offset * transform.forward), transform.rotation) as Rigidbody2D; 
    bPrefab.velocity = transform.forward * shootSpeed; 
} 

Wenn es immer noch in die falsche Richtung ist, drehen Sie den shootSpeed Wert -10 Versuchen Sie es erneut und kippen Sie offset zu -5. Dies wird wahrscheinlich Ihr Problem beheben.

+0

yep .... Ich löse: bPrefab.velocity = new Vector3 (40, 0, 0); – Chetan

+0

Danke an alle ... – Chetan

Verwandte Themen