Wednesday, 15 July 2015

unity3d - Enemy attack the player? -



unity3d - Enemy attack the player? -

i created enemy attack player, enemy has gun. want when gun shot, shot goes direction of player. can instantiate can't alter direction bullet attack player in position.

how can ?

i'm trying this.

public class enemyshotgun : monobehaviour { public gameobject[] gun; //gun attack player public gameobject prefabshot; //shot public float enemyshotspeed; private float delayattack; public float timeattack; //player private transform player; // utilize initialization void start () { player = gameobject.findgameobjectwithtag("airplane").transform; } // update called 1 time per frame void update () { delayattack += time.deltatime; if (delayattack >= timeattack){ for(int x = 0; x < gun.length; x++){ gameobject shot = instantiate(prefabshot, gun[x].transform.position, quaternion.identity) gameobject; shot.rigidbody2d.addrelativeforce(new vector2(0, -500)); shot.transform.position = player.position; //bullet goes player position } delayattack = 0; } } }

what need add together forcefulness towards player. not towards -y direction. alter this:

shot.rigidbody2d.addforce(new vector2(0, -500));

to this:

shot.rigidbody2d.addforce(((vector2)(player.position - shot.transform.position)).normalized * 500);

in player.position - shot.transform.position vector shot player.

also remove line:

shot.transform.position = player.position; //bullet goes player position

it moving shot player position immediately.

unity3d

No comments:

Post a Comment