I want to use main camera to trigger a spot light to come on when I approach and object. What script would I need and what would I attach it to, the trigger object or the camera. Any help would be appreciated
you can add a box collider to your light and mark the trigger on box collider.then create a java script and attach it to your light object. you can write something like this in that script:
function OnTriggerEnter(){
gameObject.light.enabled = true;
}
function OnTriggerExit(){
gameObject.light.enabled = false;
}
You'd use a trigger an then implement the method OnTriggerEnter in your MonoBehaviour (which is the class you implement when writing a script, explicitly in C#, implicitly in UnityScript).
You'd probably have a public member variable in that class to assign the light, something like (C#):
public Light lightToSwitch = null;
Then, in your implementation of OnTriggerEnter and OnTriggerExit, simply set enabled true/false:
public void OnTriggerEnter(Collider other) {
lightToSwitch.enabled = true;
}
public void OnTriggerExit(Collider other) {
lightToSwitch.enabled = false;
}
You'd attach that object to the object that has the collider for the trigger attached to it.
For some more information on how to set up the colliders / triggers, see Physics in the Unity manual.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerEvent : MonoBehaviour
{
public Light lightBulb = null;
void OnTriggerEnter (Collider other)
{
if (other.name == "player")
{
lightBulb.enabled = true;
}
else if (other.name == "player")
{
lightBulb.enabled = false;
}
}
}