CarmenSandiego/Assets/UdonSharp/ACMEBugnetAlert.cs
2026-05-24 11:44:08 -04:00

42 lines
896 B
C#

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
using VRC.Udon.Common;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class ACMEBugnetAlert : UdonSharpBehaviour
{
[SerializeField] private MeshRenderer _LampMesh;
[SerializeField] private int _LampMaterialSlot = 0;
[Space]
[SerializeField] private Material _UnlitMaterial;
[SerializeField] private Material _LitMaterial;
[UdonSynced] private bool _IsLit = false;
public override void OnDeserialization(DeserializationResult Result)
{
_SetLit_Synced();
base.OnDeserialization(Result);
}
public void SetLit(bool Lit)
{
_IsLit = Lit;
_SetLit_Synced();
RequestSerialization();
}
private void _SetLit_Synced()
{
Material[] LampMaterials = _LampMesh.materials;
LampMaterials[_LampMaterialSlot] = _IsLit ? _LitMaterial : _UnlitMaterial;
_LampMesh.materials = LampMaterials;
}
}