게임 개발 로그
개발 노트 #5 본문
0. 클래스 다이어그램
0-1. EventBusManager
1. 구현
- EventParam & EventType
- Singletone<T>
- 싱글톤 구현 시 발생 가능한 문제점
- 유니티 모든 Scene에 지속되지 않을 수 있음
- → DontDestroyOnLoad(instance.gameObject); 를 하여 해결함.
- 유니티의 Hierarchy에 GameObject를 생성 및 할당 필요 → GameObject _createGameObject = new GameObject(typeof(T).Name); → DontDestroyOnLoad(_createGameObject); → instance = _createGameObject.AddComponent<T>();
- → 위와 같은 코드를 추가하여 하이라키 창에서 보이도록 함.
- instance가 Awake문에서 결정됨. 랜덤적으로 Null 참조 예외 발생 가능
- → get에서 Instance를 생성하고 있으므로 Instance가 불릴 때 생성됨. 따라서 스크립트 실행 순서와 상관이 없어지도록 함.
- 객체에 여러 개 컴포넌트가 생성될 수 있음.
- → [DisallowMultipleComponent] 를 붙여 컴포넌트에 복수 개를 붙일 수 없도록 함.
- Dust Effect
- 0초부터 3초까지 랜덤의 시간마다 불리는 코루틴을 넣어서 dustParticle이 랜덤 위치에서 생성되도록 함.
- 위치가 의도와 달리 멀어지는 경우가 있어서 위치값을 더하는 게 아닌 다른 방식으로 수정해야 할 듯.
2. 사용
- EventBusManager
- EventParam을 상속받는 새로운 클래스를 만들어 넘기면 된다.
- 별다른 Param이 없을 시 Subscribe 사용할 때 EventParam 매개변수를 생략해도 됨.
참고 링크