|
Hello, I'm creating a vanishing platform and I have my code working, but to be honest, I'm not sure how I'm getting the result I'm getting based off the code I wrote. To elaborate, I have attached a scaled box trigger on to an object that has a mesh collider. Now, when the player walks into the box trigger, the platform (renderer) will disappear after a set amount of seconds. The platform will also set the mesh collider as a trigger so that the physics are pretty much gone, thus, allowing the player to fall. After another set amount of seconds, the platform will come back and the mesh collider's trigger value will be set to false. This is the part that confuses me (but I'm glad it's working), the box trigger is completely unaffected every time. Seeing how the box trigger is technically a collider as far as I thought, I would think that setting the "unspecified" collider's trigger to false would disable both the mesh collider's AND box trigger's trigger to false. Anyone know why this may be happening, and just to be safe, does anyone know a way to specify which collider to manipulate in code?
(comments are locked)
|
|
I suppose the collider property works like audio or other GameObject properties: they only return the first component (GetComponents is used in order to access the others).
public float vanishTime;
void OnTriggerEnter (Collider hit)
{
if (hit.gameObject.tag == "Player") {
Invoke ("Vanish", vanishTime);
}
}
void Vanish()
{
transform.parent.collider.isTrigger = true;
transform.parent.renderer.enabled = false;
Invoke("Reappear", vanishTime);
}
void Reappear()
{
transform.parent.collider.isTrigger = false;
transform.parent.renderer.enabled = true;
}
Thanks for the advice. Your method of child triggering was the way I was actually doing it before. I suppose I wanted to be lazy this time around, but I'll probably revert to the method you spoke of.
Jun 18 '12 at 06:30 AM
SirVictory
(comments are locked)
|
