- Home /
collide object turns on another script temporally
So I have a script that cause the camera to glitch, I want when you enter a box collider the glitch script becomes actives for a few seconds the turns off I tried make my own but i keep getting errors
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class glitchon : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
GlitchCameraShader =
other.gameObject.GetComponent<GlitchCameraShader>();
gameObject.GetComponent(GlitchCameraShader).enabled = true;
yield return new WaitForSeconds(0.05f);
gameObject.GetComponent(GlitchCameraShader).enabled = false;
}
}
}
Comment
Answer by Tondoy · Feb 21 at 04:09 PM
Yielding is only usable in Coroutins, so you need to wait using one of these. The code could look something like this:
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
GlitchCameraShader = other.gameObject.GetComponent<GlitchCameraShader>();
StartCoroutine(nameof(CameraGlitchTimer));
}
}
IEnumerator CameraGlitchTimer
{
gameObject.GetComponent(GlitchCameraShader).enabled = true;
yield return new WaitForSeconds(0.05f);
gameObject.GetComponent(GlitchCameraShader).enabled = false;
}
Your answer
Follow this Question
Related Questions
Can't click gameobject when over another trigger? 1 Answer
Creating objects when entering a trigger? 1 Answer
trigger inappropriate activation 1 Answer
Changing the camera when clicked on a collider 1 Answer
If trigger hit, spawn it 1 Answer