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; } }