게임 개발 로그

개발 노트 #5 본문

게임 개발/레스토랑 대소동

개발 노트 #5

03:00am 2024. 11. 11. 18:26

 

이펙트를 추가한 화면 (체력이 처음 생성된 체력의 3/1 이하가 되면 깨끗한 이펙트 나옴)

 

0. 클래스 다이어그램

0-1. EventBusManager

 

1. 구현

  • EventParam & EventType

  • Singletone<T>

  • 싱글톤 구현 시 발생 가능한 문제점
    1. 유니티 모든 Scene에 지속되지 않을 수 있음
    2. → DontDestroyOnLoad(instance.gameObject); 를 하여 해결함.
    3. 유니티의 Hierarchy에 GameObject를 생성 및 할당 필요 → GameObject _createGameObject = new GameObject(typeof(T).Name); → DontDestroyOnLoad(_createGameObject); → instance = _createGameObject.AddComponent<T>();
    4. → 위와 같은 코드를 추가하여 하이라키 창에서 보이도록 함.
    5. instance가 Awake문에서 결정됨. 랜덤적으로 Null 참조 예외 발생 가능
    6. → get에서 Instance를 생성하고 있으므로 Instance가 불릴 때 생성됨. 따라서 스크립트 실행 순서와 상관이 없어지도록 함.
    7. 객체에 여러 개 컴포넌트가 생성될 수 있음.
    8. → [DisallowMultipleComponent] 를 붙여 컴포넌트에 복수 개를 붙일 수 없도록 함.

 

  • Dust Effect

    • 0초부터 3초까지 랜덤의 시간마다 불리는 코루틴을 넣어서 dustParticle이 랜덤 위치에서 생성되도록 함.
    • 위치가 의도와 달리 멀어지는 경우가 있어서 위치값을 더하는 게 아닌 다른 방식으로 수정해야 할 듯.

 

2. 사용

  • EventBusManager

  • EventParam을 상속받는 새로운 클래스를 만들어 넘기면 된다.
  • 별다른 Param이 없을 시 Subscribe 사용할 때 EventParam 매개변수를 생략해도 됨.

 

참고 링크

[Unity] Unity에서 사용되는 싱글톤 패턴

파티클 시스템 기초 - 01 - 파티클 시스템 만들기

 

'게임 개발 > 레스토랑 대소동' 카테고리의 다른 글

개발 노트 #7  (1) 2024.11.19
개발 노트 #6  (2) 2024.11.19
개발 노트 #4  (2) 2024.11.11
개발 노트 #3  (0) 2024.11.11
개발 노트 #2  (0) 2024.11.11