The following script allows me to enter a trigger, and will display a gui texture. but i also want the gui texture to dissapear when i exit the trigger. how would i do this? i tried destroying but it destroyed the prefab also… can i somehow disable it?
script:
function OnTriggerEnter (PlayerCollider : Collider)
{
if(PlayerCollider.gameObject.name == “player”)
{
var instance : GUITexture = Instantiate(openDoorText,Vector3(.5, .5, 0), Quaternion.identity);
}
}
You must have been trying to destroy the prefab and not the instance, therefor you should place a variable outside of the scope of the OnTriggerEnter function so you can access it on other functions and in your case OnTriggerExit:
var guiTexturePrefab : GUITexture;
var doorUp : AnimationClip;
var timer : float = 6.0;
private var instance: GUITexture;
function OnTriggerStay (mytrigger : Collider)
{
if(mytrigger.gameObject.name == "player" )
{
door = gameObject.Find("door");
if(Input.GetButton("openDoor"))
door.animation.Play("hoistDoorUp");
}
}
function OnTriggerEnter (PlayerCollider : Collider)
{
if(PlayerCollider.gameObject.name == "player")
instance= Instantiate(guiTexturePrefab,Vector3(.5, .5, 0), Quaternion.identity);
}
function OnTriggerExit (PlayerCollider : Collider)
{
if(PlayerCollider.gameObject.name == "player" && instance)
Destroy(instance);
}
var doorUp : AnimationClip;
var instance : GUITexture;
var timer : float = 6.0;
function OnTriggerStay (mytrigger : Collider) {
if(mytrigger.gameObject.name == “player” )
{
door = gameObject.Find("door");
if(Input.GetButton(“openDoor”))
door.animation.Play("hoistDoorUp");
}
}
function OnTriggerEnter (PlayerCollider : Collider)
{
if(PlayerCollider.gameObject.name == “player”)
{
instance = Instantiate(instance,Vector3(.5, .5, 0), Quaternion.identity);
}
}
function OnTriggerExit (playerCollider : Collider)
{
if(playerCollider.gameObject.name == “player” && instance)
Destroy(instance);
}