Unity/TopdownEngine

MMEvnet 예제

lipnus 2023. 1. 29. 16:19
반응형

Test 버튼 누르면 작동하는 간단한 예제

 

 

 

EnemyManager.cs

namespace MoreMountains.TopDownEngine
{
    public struct EnemyEvent
    {
        public int Count;
        // public EnemyEvent(int count) // 이건 왜 필요??
        // {
        //     Count = count;
        // }

        static EnemyEvent e;
        public static void Trigger(int count)
        {
            e.Count = count;
            MMEventManager.TriggerEvent(e);
        }
    }
    
    public class EnemyManager : MonoBehaviour
    {
        public void TriggerEnemyEvent(int diff)
        {
            Debug.Log($"<color=yellow>### EnemyEvent.Trigger({diff}); </color>");
            EnemyEvent.Trigger(diff);
        }    
    }
}

 

EnemyEventListenTest.cs

namespace MoreMountains.TopDownEngine
{
    public class EnemyEventListenTest : MonoBehaviour, MMEventListener<EnemyEvent>
    {
        public void OnMMEvent(EnemyEvent enemyEvent)
        {
            Debug.Log($"<color=green>### 적군카운트: {enemyEvent.Count}</color>");
        }

        private void OnEnable()
        {
            this.MMEventStartListening<EnemyEvent>();
        }

        private void OnDisable()
        {
            this.MMEventStopListening<EnemyEvent>();
        }
    }
}

OnEnable과 OnDisable에 있는걸 꼭 해줘야 함

 

씬 안에 아무데나 넣어둚
버튼 눌렀을 때의 결과

 

반응형

'Unity > TopdownEngine' 카테고리의 다른 글

무기 변경  (0) 2023.01.30
Inventory에 아이템 집어넣기 & 초기 Weapon 설정  (0) 2023.01.29
MMEvent 동작 원리  (0) 2023.01.29
데미지 숫자 표시  (0) 2023.01.28
주인공 죽음 및 GameOver Canvas 처리  (0) 2023.01.28