글의 요약 설명 부분.
목 차
Animation Override Controller
마음이 급해서 일단 GPT로 배운 내용 스크랩해서 올린다. 나중에 개인과제 제출 완료하고 추가 자료와 함께 수정... 할 수도 있고 아닐수도 있고.
AnimatorOverrideController 사용하기
- AnimatorOverrideController 생성하기
- Unity 에디터에서 Project 탭을 열고, Create > Animator Override Controller를 선택합니다.
- 생성된 Override Controller에 이름을 지정하고 (예: PlayerAnimationsOverride), 플레이어의 원본 Animator Controller를 드래그하여 Controller 슬롯에 할당합니다.
- 애니메이션 클립 교체
- Override Controller를 더블 클릭하여 열고, 교체하고 싶은 기존의 애니메이션 클립 옆에 새 클립을 드래그합니다.
- 예를 들어, 'Walk' 애니메이션을 새로운 'Walk_New' 클립으로 교체하려면, 'Walk' 항목 옆에 'Walk_New' 클립을 드래그합니다.
- 스크립트 작성
- 게임 오브젝트에 스크립트를 추가하여 애니메이터 컨트롤러를 변경합니다. 예를 들어, 스크립트를 통해 다양한 상황에 맞는 애니메이션을 적용할 수 있습니다.
using UnityEngine;
public class AnimationSwapper : MonoBehaviour
{
public Animator animator; // Animator 컴포넌트
public AnimatorOverrideController animatorOverrideController; // 사용자 지정 Override Controller
void Start()
{
// Animator의 런타임 컨트롤러를 Override Controller로 변경
animator.runtimeAnimatorController = animatorOverrideController;
}
// 예시: 특정 상황에서 애니메이션 변경
public void ChangeAnimationClip(AnimationClip newClip, string clipNameToReplace)
{
animatorOverrideController[clipNameToReplace] = newClip;
animator.runtimeAnimatorController = animatorOverrideController;
}
}
사용 시 주의사항
- 애니메이션 교체의 동적 반영: AnimatorOverrideController를 사용하면 실행 중에 애니메이션 클립을 교체할 수 있으며, 이 변경사항은 즉시 반영됩니다.
- 캐싱: AnimatorOverrideController 인스턴스를 캐싱해두고 필요할 때마다 수정하여 사용할 수 있습니다. 이는 메모리 사용과 성능 최적화에 도움을 줍니다.
이 접근 방법을 사용하면 플레이어에 연결된 애니메이터의 애니메이션 클립을 유연하게 변경할 수 있으며, 게임 내 다양한 상황에 맞게 캐릭터의 행동을 다르게 표현할 수 있습니다.
TextMeshPro
1. TextMesh Pro 컴포넌트 추가
Unity에서 TMP 컴포넌트 추가하기:
- Unity 에디터 열기와 프로젝트 선택.
- Hierarchy 뷰에서 UI 요소를 추가하려는 Canvas를 선택하거나 새 Canvas를 생성합니다.
- GameObject > UI > Text - TextMeshPro를 선택하여 새 TMP 텍스트 오브젝트를 생성합니다.
2. 폰트 에셋 설정
TMP는 기본 폰트 에셋을 사용합니다만, 다른 스타일이나 폰트가 필요할 경우 변경할 수 있습니다:
- Font Asset 생성: Window > TextMeshPro > Font Asset Creator를 열어, 원하는 TTF 또는 OTF 폰트 파일을 사용하여 새 폰트 에셋을 생성합니다.
- 생성된 폰트 에셋을 TMP 텍스트 오브젝트의 Font Asset 속성에 드래그하여 할당합니다.
3. 텍스트 스타일링
TMP는 다양한 스타일링 옵션을 제공합니다:
- 텍스트 속성 조정: Inspector에서 텍스트 컴포넌트를 선택하고, Text 필드에 표시할 문자열을 입력합니다. 폰트 크기, 색상, 정렬 등을 조정할 수 있습니다.
- 효과 추가: 그림자, 아웃라인, 그라디언트 등 다양한 효과를 적용할 수 있습니다. 이는 Extra Settings에서 설정할 수 있습니다.
4. 텍스트 레이아웃 조절
TMP는 텍스트 레이아웃을 세밀하게 조정할 수 있는 옵션을 제공합니다:
- Wrapping: 텍스트가 특정 너비를 초과할 때 자동으로 줄바꿈할지 여부를 설정할 수 있습니다.
- Auto-size: 텍스트 박스 크기에 맞추어 폰트 크기가 자동으로 조정되도록 설정할 수 있습니다.
5. 인터랙티브 텍스트 만들기
TMP를 사용하여 링크, 서브스크립트, 슈퍼스크립트 등 인터랙티브 텍스트를 만들 수 있습니다:
- Rich Text 사용: TMP의 리치 텍스트 기능을 사용하여 텍스트에 태그를 추가하고, 특정 단어나 구절에 다양한 스타일을 적용합니다.
- 링크 추가: <link="id">Click here!</link>와 같은 태그를 사용하여 인터랙티브 링크를 만듭니다. 링크에 대한 클릭 이벤트를 처리하기 위해 TMP 컴포넌트에 스크립트를 추가합니다.
6. 스크립트를 통한 텍스트 제어
TMP 텍스트는 스크립트를 통해서도 제어할 수 있습니다. 예를 들어, 플레이어의 점수나 상태 메시지를 동적으로 업데이트할 수 있습니다
using TMPro; // TMP 네임스페이스 추가
public class ScoreManager : MonoBehaviour
{
public TextMeshProUGUI scoreText; // Inspector에서 할당
public void UpdateScore(int newScore)
{
scoreText.text = "Score: " + newScore.ToString();
}
}
이 가이드는 TMP의 기본 사용법을 다루며, 보다 고급 기능은 Unity의 공식 문서나 TMP 문서에서 더욱 자세히 학습할 수 있습니다. TMP를 사용하면 게임 UI의 질을 크게 향상시킬 수 있습니다.
2d에서 유사 3차원 만드는 법
마무리
마무리
'내일배움캠프 > [P4-Solo.] PartyRoom' 카테고리의 다른 글
[TIL24.05.16] Unity 개인프로젝트 입문 해설 (0) | 2024.05.16 |
---|---|
[TIL 24.05.10] Unity 개인프로젝트 입문(1) (0) | 2024.05.10 |