45 lines
810 B
C#
45 lines
810 B
C#
using UnityEngine;
|
|
|
|
public class InteractableLamp : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private GameObject _light;
|
|
|
|
[SerializeField]
|
|
private MeshRenderer _lightMesh;
|
|
|
|
[SerializeField]
|
|
private int _materialIndex;
|
|
|
|
[SerializeField]
|
|
private Material _glowingMaterial;
|
|
|
|
[SerializeField]
|
|
private Material _turnedOffMaterial;
|
|
|
|
private Material[] _materials;
|
|
|
|
[SerializeField]
|
|
private bool _turnOn = true;
|
|
|
|
private bool _isTurnedOn;
|
|
|
|
private void Awake()
|
|
{
|
|
_materials = _lightMesh.materials;
|
|
_isTurnedOn = !_turnOn;
|
|
TurnOn(_turnOn);
|
|
}
|
|
|
|
public void TurnOn(bool value)
|
|
{
|
|
if (_isTurnedOn != value)
|
|
{
|
|
_light.gameObject.SetActive(value);
|
|
_materials[_materialIndex] = ((!value) ? _turnedOffMaterial : _glowingMaterial);
|
|
_lightMesh.materials = _materials;
|
|
_isTurnedOn = value;
|
|
}
|
|
}
|
|
}
|