✅ 1. PlayerController의 역할 분리
- 외부 요인(점프대, 충돌 등)에 의한 행동 변화는 PlayerController가 아닌 **Player(캐릭터 본체)**가 직접 처리하는 것이 좋음.
- PlayerController는 입력 처리 전담 / Player는 행동 상태 관리 및 반응 처리를 맡도록 역할을 분리하는 것이 유지보수에 유리함.
✅ 2. PlayerController에서 Player 필드 보유
- PlayerController가 Player를 필드로 보유해도 무방.
- 특히 PlayerController가 싱글톤이라면, 현재 조종 중인 캐릭터를 참조해야 하므로 오히려 자연스러운 설계.
- 단, 역참조 순환에 주의 (메모리 누수, 파괴 순서 등).
✅ 3. 속도 증가 버프 처리 방식
- 코루틴 vs 시간 체크 방식 비교:
- 코루틴은 깔끔하고 직관적이며 간단한 일회성 버프에 적합.
- 시간 체크 방식은 다수의 버프가 동시에 작동하고 관리가 필요할 때 유리.
- 현재는 코루틴 방식으로 진행 중.
✅ 4. 버프 시스템 설계 (시간 체크 기반)
- 각 버프는 다음 정보를 포함:
- BuffType, Value, Duration, ExpireTime
- 매 프레임마다 현재 시간과 ExpireTime을 비교해 자동 제거
- 구조 예시:
class Buff {
public BuffType type;
public float value;
public float expireTime;
}
List<Buff> activeBuffs;
public BuffType type;
public float value;
public float expireTime;
}
List<Buff> activeBuffs;
✅ 5. 자식 오브젝트에서 특정 컴포넌트 찾기
- transform.Find("name")은 직속 자식만 검색함.
- 2단계 이상 구조에서는 "A/B" 경로를 사용하거나 재귀 탐색 함수 사용.
✅ 6. InputAction의 started vs performed
- started: 입력이 시작될 때 한 번 호출
- performed: 입력이 완전히 수행되었을 때 호출
- performed의 시점은 Interaction 설정 (Press, Release 등)에 따라 다름
'[내일배움캠프 Unity 9기]' 카테고리의 다른 글
| 05/23 TIL 개인 과제 제출 및 팀프로젝트 시작 전 퓨전2 입문하기 (0) | 2025.05.23 |
|---|---|
| 05/22 TIL 및 개인 과제 마무리 (0) | 2025.05.22 |
| 05/20 트러블 슈팅 및 개인 과제 시작 (1) | 2025.05.20 |
| 05/19 TIL 스카이 박스의 애니메이션 설정, 조명 처리 (1) | 2025.05.19 |
| 05/16 TIL - 유니티 프로젝트 숙련 강의 수강 (1) | 2025.05.16 |