using UnityEngine; public class SimpleEventExample : MonoBehaviour { [Header("StreamDock 통신")] [SerializeField] private SimpleStreamDockCommunicator streamDock; void Start() { // StreamDock 이벤트 구독 if (streamDock != null) { streamDock.OnStreamDockMessageReceived.AddListener(OnStreamDockMessage); streamDock.OnConnected.AddListener(OnStreamDockConnected); streamDock.OnDisconnected.AddListener(OnStreamDockDisconnected); } } /// /// StreamDock에서 메시지 수신 시 처리 /// private void OnStreamDockMessage(string eventType, object data) { Debug.Log($"StreamDock 이벤트 수신: {eventType}"); switch (eventType) { case "button_clicked": // 버튼 클릭 시 실행할 코드 Debug.Log("버튼 클릭 이벤트 실행!"); DoSomething(); break; case "dial_rotate": // 다이얼 회전 시 실행할 코드 Debug.Log("다이얼 회전 이벤트 실행!"); DoSomethingElse(); break; case "dial_press": // 다이얼 누름 시 실행할 코드 Debug.Log("다이얼 누름 이벤트 실행!"); DoAnotherThing(); break; } } /// /// StreamDock 연결 시 처리 /// private void OnStreamDockConnected() { Debug.Log("StreamDock에 연결되었습니다!"); } /// /// StreamDock 연결 해제 시 처리 /// private void OnStreamDockDisconnected() { Debug.Log("StreamDock 연결이 해제되었습니다."); } // 여기에 원하는 동작들을 구현하세요 private void DoSomething() { Debug.Log("버튼 클릭으로 실행된 동작!"); // 예: 오브젝트 활성화/비활성화, 애니메이션 재생, 사운드 재생 등 } private void DoSomethingElse() { Debug.Log("다이얼 회전으로 실행된 동작!"); // 예: 볼륨 조절, 카메라 회전, 값 변경 등 } private void DoAnotherThing() { Debug.Log("다이얼 누름으로 실행된 동작!"); // 예: 특수 기능 실행, 모드 변경 등 } // 공개 메서드들 (Inspector에서 호출 가능) [ContextMenu("테스트 동작 1")] public void TestAction1() { DoSomething(); } [ContextMenu("테스트 동작 2")] public void TestAction2() { DoSomethingElse(); } [ContextMenu("테스트 동작 3")] public void TestAction3() { DoAnotherThing(); } }