42 lines
896 B
C#
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;
|
|
}
|
|
}
|