- Home /
clone functions
Hi guys,
How i can put functions in clones like this.
function Update(){
if(attack){
attack=false;
clone = Instantiate(clone , transform.position, transform.rotation);
clone.onCollisionEnter();
}
}
function clone.onCollisionEnter(){
print("collision");
}
I want o detect collisions of clone in player script, is this possible?
Answer by Golan2781 · Dec 29, 2012 at 12:46 PM
Give the clone a reference to the player gameObject or script. Something like this:
// PlayerScript.js
function Update(){
if(attack){
clone = Instantiate(clonePrefab , transform.position, transform.rotation);
clone.GetComponent.<CloneScript>().myParent = this; // set a reference to the player's instance of this class
}
}
Then in the clone's collision event, you can directly influence the player.
// CloneScript.js
var myParent : PlayerScript; // variable to store the player
// other code...
function onCollisionEnter(){
myParent.cloneIsHit(); // call the player's function for the clone being hit
}
Answer by Piflik · Dec 29, 2012 at 12:36 PM
OnCollisionEnter is called automatically by the engine, if a collision happens. You can call the function yourself, if you want to, but that doesn't test for collisions. It runs the code inside the function.
If you want to know if the player collides with a clone, use the OnCollisionEnter function of the player and use an if statement to test, if the other object is a clone, for example by using its tag.
If you want to know in the player script, if any clone is colliding with anything else (not the player) you would have to either send a message to the player or set a boolean variable in the player script to true (GetComponent()...).