[내일배움캠프 Unity 9기]

05/21 TIL

kyvv 2025. 5. 21. 21:41

✅ 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;

 


✅ 5. 자식 오브젝트에서 특정 컴포넌트 찾기

  • transform.Find("name")은 직속 자식만 검색함.
  • 2단계 이상 구조에서는 "A/B" 경로를 사용하거나 재귀 탐색 함수 사용.
  •  

✅ 6. InputAction의 started vs performed

  • started: 입력이 시작될 때 한 번 호출
  • performed: 입력이 완전히 수행되었을 때 호출
  • performed의 시점은 Interaction 설정 (Press, Release 등)에 따라 다름