-
Notifications
You must be signed in to change notification settings - Fork 4
2024. 10. 30. 회의록
Yongdori edited this page Nov 6, 2024
·
1 revision
Manager
시스템과 자원 등의 생성, 반환, 운용 등 모든 것을 관리
싱글톤 개념을 가짐
예시 : LobbyManager, GameManager, StageManager, SoundManager
Controller
현재 운용되고 있는 시스템이나 자원의 상태를 제어
예시 : InputController, PlayerController, NavigationController
Handler
할당 받은 자원을 운용 또는 처리가 목적일 때 사용
예시 : HttpHandler
- 스테이지 간 전환 (Scene 전환)
- 매니저 총괄
- 각 스테이지별 레벨 진행 관리
- 예시 - 한쪽에서 스위치를 눌렀을 때 반대쪽 문이 열리는 것 등
- 오브젝트 간 상호작용
- Effect initiate
- 범위 내 가이드, 음악 스킬 부분
- 플레이어 내 범위 감지까지는 플레이어 내에서, 감지 시에는 PlayManager에서 호출
- Audio(Bgm, Sfx) play
- Player movement - 플레이어 이동
- Player Input - 플레이어 공명, 조사 스킬 사용 구현
-
오디오 게임 매니저
- 오디오 클립을 재생하거나 난이도를 설정하는 데 사용
- 난이도는 한 번 설정하면 계속 유지
- 레벨은 플레이와 별도로 관리
-
게임 매니저, UI 매니저
- 게임 매니저는 싱글톤 패턴으로, UI 매니저는 신에 상관없이 존재
- UI 매니저는 Scene별로 존재하며, 각 신에 해당하는 UI를 가짐
- 플레이 매니저는 Sprint1에선 별로 쓸 일이 없지만 추후 오브젝트간 상호작용 등에서 필요
-
플레이 매니저
- 플레이 매니저에서 키 인풋 처리를 해야 하는지
- 오브젝트 조사와 음악 스킬 사용은 플레이 매니저에서 처리 가능
- 키 인풋 처리를 플레이 매니저에서 하는 것이 더 나을 것으로 예상
- 플레이어의 움직임과 스킬 관련 기능을 분리
- 플레이어 매니저에 스킬 관련 기능을 두는 것이 좋은가? -> 확장성을 고려하면 플레이어 매니저 밖에 스킬 관련 기능을 두는 것이 좋을 것
-
플레이어 애니메이션 분리
- 플레이어가 Destroy 되면 스킬을 못 쓰게 하는 것이 자연스러움
- 컨트롤러에서 플레이어를 제거하고, 컨트롤러만 나오게 함
- 애니메이션을 분리하는 방법을 고민함
-
플레이어 주변 상호작용 가능한 오브젝트 찾는 방법
- 플레이어 주변에 있는 모든 오브젝트를 찾아야 함
- 상호작용 가능한 오브젝트를 인스펙터로 받아야 함
- 플레이어 주변 일정 부분만 계속 검사하는 것이 효율적임
-
게임 오브젝트와 상호 작용
- 모든 게임 오브젝트는 게임 플레이어를 볼 수 있지만, 게임 플레이어는 모든 게임 오브젝트를 볼 수 없다
- 게임 매니저를 통해 나무 하나하나를 조작하는 것은 바람직하지 않다
- 각 게임 오브젝트는 게임 매니저를 볼 수 있지만, 게임에서 모든 게임 오브젝트를 사용하는 것은 이상하다
- 플레이어와 오브젝트 간의 관계는 매니저에서 제어해도 괜찮을 것 같다
- 플레이어 매니저에서 타겟을 관리하여 일정 거리 내에 있는 것을 항상 탐지
- 오브젝트가 들어오거나 나갈 때 플레이 매니저에 전달해야 함
- 타겟 호출을 통해 오브젝트의 상태를 파악해야 함
-
동물 애니메이션
- 동물은 아무것도 누르지 않으면 Idle 또는 정해진 범위 패트롤
-
물의 흐름 효과
- 물의 수위 조절을 위해 고도 차이를 구하고 평균값을 찾는다
- 수문이 열렸을 때 물이 흐르는 효과를 만들고, 부유물을 배경에서 흐르는 것처럼 보이게 한다
-
나무 세부 구현
- 파티클을 넣어 나무를 태우는 효과를 구현
- 나무가 쓰러지는 효과를 구현하기 위해 rigidbody 사용
- mass of center을 아래에 두어 위쪽만 회전하도록 함
- GameManager 초기 세팅 : 매니저들 가져오기, 색/음 enum 만들기
- Sound Manager : 도~시 음 연주 API
- Player Music Control : Number Key(1~7) 입력 시 SoundManager 연주 API, Effect Manager 파동 API
- EffectManager : 빨~보 파동 VFX 발생 (index[ ], power = 1)
- PlayManager : Object - ObjectDetected < GameObject, isEntered
- 공명 가능한 물체 - script, 태그 = 붙여 놓고 판단
- 공명 가능한 물체일 시 그 물체의 공명 가능한 물체에 있는 능력들의 effect 호출… (차례대로, mesh 따라서)
- 상시로 범위 내에 오브젝트 접근 여부 받아서 ObjectDetected (Enter / Out bool값과 object)
- 카메라가 특정 오브젝트 주위를 동그랗게 비추고 다시 커지게 하기 (게임 클리어 연출용으로)
- Player movement - 플레이어 이동, 애니메이션, IK, 애니메이션
- 물, 나무, 돌과 상호작용 없이는 통행 불가능
- 나무가 불에 타는 Effect
- 나무 3단계 높이 구현
- Life 존재
- Life 깎이기 API
- Life 일정 이하로 내려갈 시 지정 방향으로 쓰러짐 구현
- 쓰러질 때 밑둥 짤림 구현
-
오브젝트 자체 구현(기능에 따라 종류 다양) - 동그라미 세모 네모… 정도의 다양성 필요 (Asset, blender 등 자유)
-
돌이 주어진 벡터방향으로 주어진 speed로 굴러간다.
-
특정 flag가 발동했을때 돌이 player를 따라가도록 구현하기 (궁중에서 둥실둥실하면 더 좋지만 필수는 아님)
-
발광가능한 돌 prefab 만들어오기 (Asset ~ trigger시 빛 on.off 구)
- asset 찾기(?)
- AnimalState [idle, rush] // 평소에는 아이들/ 공명하면 rush
- Rush + paticle (가능하면) // 돌진
- Animation // state에 따라 애니메이션 효과
- path //레벨별 격로
- 수위 조절 API (단계별 조절 / 기본 수위와 주변 환경(물 아래 바닥)에 따른 조건부 조작 필요)
- (자료 찾기) 물의 스플래쉬 효과