- Home /
Clones of object wont disapear..
Hello, I am fairly new to coding in general but, I have been able to put together a piece of JS from various tutorials to work like Click to Move. Upon clicking to an area I not only move but, I also spawn a particle effect. The problem I have is that after I click to move the clone of the original particle effect stays.
So my question is this: How can I make it so that either after a few seconds or upon arrival, the clone of the particle gets destroyed? And how can I make it so the original particle in my level cannot be seen by the players?
Here is the code for my Click to Move script:
private var targetPosition:Vector3;
var speed = 60;
function Update () {
if(Input.GetKeyDown(KeyCode.Mouse0))
{
speed = 5;
var playerPlane = new Plane(Vector3.up, transform.position);
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hitdist = 0.0;
if (playerPlane.Raycast (ray, hitdist)) {
var targetPoint = ray.GetPoint(hitdist);
targetPosition = ray.GetPoint(hitdist);
var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
transform.rotation = targetRotation;
Instantiate(clickEffect,targetPosition,Quaternion.identity);
}
}
var dir:Vector3 = targetPosition - transform.position;
var dist:float = dir.magnitude;
var move:float = speed * Time.deltaTime;
if(dist > move){
transform.position += dir.normalized * move;
} else {
transform.position = targetPosition;
}
transform.position += (targetPosition - transform.position).normalized * speed * Time.deltaTime;
}
Answer by JeffreyD · Feb 26, 2014 at 01:54 AM
Here is the like to script reference on instantiate. http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html ... See how the example code gets a clone on instantiation. So you might do something like...
Then when you want to Destroy the clone you can use Destroy (clone, x); (where x = num seconds until the destroy occurs. Here is the link to Destroy http://docs.unity3d.com/Documentation/ScriptReference/Object.Destroy.html
So you might do something like....
var clone : Rigidbody;
clone = Instantiate(clickEffect,targetPosition,Quaternion.identity);
Destroy (clone, 2); // destroys the clone in 2 seconds
Let me know how it works out.
Your answer
Follow this Question
Related Questions
Problem with collisions and Destroy(gameObject). 2 Answers
Destroying the original object destroys all its clones? 0 Answers
Can't destroy a script. 1 Answer
Problem with destroying a gameObject when used with targeting 1 Answer
Destroy instantiated clone after input.getbutton has been released 1 Answer