- Home /
Question by
Omer.Hussain · Jan 28, 2014 at 02:44 PM ·
spawnaddforceoncollisionenterrunning
Object doesn't stop moving OnCollisionEnter
Hi! in my script i am instantiating the prefab at random assign spawn, when it instantiate prefab , i addforce to move it toward my player, it works ... on collision i stop creating instantiating, it works but what i want is to stop the moving instantiated prefab clone...... i tried different techniques but it doesn't work .... kindly help me out ... this make it move thingToMake.AddForce(Vector3(0,0,speed));
#pragma strict
var timer : float = 0.0;
var spawning : boolean = false;
var prefab : Rigidbody;
var spawn1 : Transform;
var spawn2 : Transform;
var spawn3 : Transform;
var flag=true;
var speed : int; // speed of the obstacle
function Update () {
/* if (flag==false){
speed=1;
print(speed);
}*/
//check if spawning at the moment, if not add to timer
if(!spawning){
timer += Time.deltaTime;
}
//when timer reaches 2 seconds, call Spawn function
if(timer >= 1){
if (flag){
//speed =-500;
Spawn();
}
}
}
function Spawn(){
//set spawning to true, to stop timer counting in the Update function
spawning = true;
//reset the timer to 0 so process can start over
timer = 0;
//select a random number, inside a maths function absolute command to ensure it is a whole number
var randomPick : int = Mathf.Abs(Random.Range(1,4));
//create a location 'Transform' type variable to store one of 3 possible locations declared at top of script
var location : Transform;
//check what randomPick is, and select one of the 3 locations, based on that number
if(randomPick == 1){
location = spawn1;
Debug.Log("Chose pos 1");
}
else if(randomPick == 2){
location = spawn2;
Debug.Log("Chose pos 2");
}
else if(randomPick == 3){
location = spawn3;
Debug.Log("Chose pos 3");
}
//create the object at point of the location variable
var thingToMake : Rigidbody = Instantiate(prefab, location.position, location.rotation);
thingToMake.AddForce(Vector3(0,0,speed));
// thingToMake.transform.Translate(Vector3.forward*Time.deltaTime*speed);
// yield WaitForSeconds(5);
// Destroy(thingToMake.gameObject);
//
//halt script for 1 second before returning to the start of the process
// yield WaitForSeconds(1);
//set spawning back to false so timer may start again
spawning = false;
}
function OnCollisionEnter(movement: Collision){
if (movement.gameObject.tag=="Hardle"){
// thingToMake.AddForce(Vector3(0,0,speed));
// transform.position= Vector3(39.90576,18.292813,-3.095224);
// print ("Touch-Movement");
//speed=0;
// Time.timeScale= 0.0f;
if(flag){
flag = false;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
A node in a childnode? 1 Answer
Adding force on collision performance question. 1 Answer
Spawn object problem 1 Answer
GameObject get launched underneath the terrain when using AddForce 0 Answers