- Home /
one gameobject instantiaton not 100
I have this script here: #pragma strict
public var bombRange=1; public var maxBombs;
var speed : float = 15.0; var gravity : float = 20.0; var bombPrefab : GameObject; var smallBomb:GameObject; var hit : RaycastHit;
private var moveDirection : Vector3 = Vector3.zero;
function Update() { var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
var spawnBomb = GameObject.Find("spawn_point").transform.position;
if(Input.GetKeyDown("space")){
var temp=Instantiate (bombPrefab,spawnBomb,Quaternion.identity);
Destroy(temp,3);
}
if(temp==null){
var bmb=Instantiate(smallBomb,GameObject.Find("downSpawn").transform.position,Quaternion.identity);
bmb.rigidbody.AddForce(transform.forward*100);
}
} Now when it instantiates the bmb var and aplies force to it, it will instantiate 100 bmb's. I only need just one. How am i doing it wrong?
Answer by s_aint47 · Apr 08, 2012 at 10:51 AM
Solved: #pragma strict
public var bombRange=1; public var maxBombs;
var speed : float = 15.0; var gravity : float = 20.0; var bombPrefab : GameObject; var smallBomb:GameObject; var hit : RaycastHit;
private var moveDirection : Vector3 = Vector3.zero;
function Update() { var controller : CharacterController = GetComponent(CharacterController);
if (controller.isGrounded) {
moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
SpawnBomb();
} function SpawnBomb(){ var spawnBomb = GameObject.Find("spawn_point").transform.position; if(Input.GetKeyDown("space")){ var temp=Instantiate (bombPrefab,spawnBomb,Quaternion.identity);
yield WaitForSeconds (2.99);
var bmb1=Instantiate(smallBomb,GameObject.Find("upSpawn").transform.position,Quaternion.identity);
bmb1.rigidbody.AddForce(0,0,10000);
Destroy(bmb1,bombRange);
var bmb2=Instantiate(smallBomb,GameObject.Find("downSpawn").transform.position,Quaternion.identity);
bmb2.rigidbody.AddForce(0,0,-10000);
Destroy(bmb2,bombRange);
var bmb3=Instantiate(smallBomb,GameObject.Find("leftSpawn").transform.position,Quaternion.identity);
bmb3.rigidbody.AddForce(-10000,0,0);
Destroy(bmb3,bombRange);
var bmb4=Instantiate(smallBomb,GameObject.Find("rightSpawn").transform.position,Quaternion.identity);
bmb4.rigidbody.AddForce(10000,0,0);
Destroy(bmb4,bombRange);
Destroy(temp);
}
} I hope someone can learn from my mistakes
Answer by stingman · Apr 07, 2012 at 11:00 PM
Well for starters you're instantiating your bomb in every frame by using it in the Update Function. I didn't test this... but what you should do is use another function and place your bomb instantiation inside of that function:
... controller.Move(moveDirection *Time.deltaTime); SpawnBomb();
function SpawnBomb() { ** then put in all of your code relating to the bomb (var spawnBomb = GameObject.Find... etc)
Your right about the multiple instantiation in the update function, but if i put the spawnBomb(); in the update function it will be the same thing. Also ty for your implication.
Answer by FizzyBear · Apr 08, 2012 at 01:00 AM
Just a guess, but try changing
bmb.rigidbody.AddForce(transform.forward*100);
to
bmb.rigidbody.AddForce(transform.forward*1);
And see how that works out?
Ty for your answer but the *1 and *100 is the force that is applied the the rigid body(the current speed of the bmb 100). Also i've noticed that piece of code wont apply the force that i want; if i can make only one bomb to be instantiated it wont have speed, so 0 100 is still 0;
Your answer
Follow this Question
Related Questions
Rotation problem with spawning bullet 2 Answers
Addforce to RigidBody problem 1 Answer
instantiate finding upstream velocity 1 Answer
Instantiated Bullet Force not being applied 0 Answers
Projectile not moving properly in top down 2d shooter 2 Answers