일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 효과음
- 스파르타내일배움캠프
- 인터페이스
- 유니티
- 직렬화
- UI
- 비선형자료구조
- Generic
- script
- soundmanager
- 메서드
- ObjectPool
- BGM
- 코루틴
- 스택
- FSM
- InputManager
- 유한상태머신
- 자료구조
- delegate
- 장애물달리기
- invokec#events
- 람다식
- LINQ
- c#
- inputsystem
- skybox
- 배열
- unity
- 프로그래머스
- Today
- Total
Unity 개발일지
[Unity] 캐릭터 선택창 만들기 본문
UI로 원하는 캐릭터 선택창을 만들자.
Image와 Button UI로 간단하게 만들었다.
OpenCharacterUIBtn 스크립트에는 말그대로 창이 열리고 닫히는 기능만 작성했다.
SelectCharacterBtn 오브젝트와 SelectBtn 오브젝트에 각각 컴포넌트로 등록하고 OnClick을 설정하였다.
SelecCharacterBtn도 간단히 Player의 자식 오브젝트에 SpriteRenderer를 넣어 구분하고
SetActive를 이용해 켜고 꺼주었다.
이 과정에서 한가지 문제가 발생한다.
바로 Animator가 처음 생성한 플레이어에만 적용되고 나머지 플레이어에는 적용되지 않는것!
그래서 PlayerAnimationConvert라는 스크립트를 만들어 Player1과 Player2의 컴포넌트로 넣어주었다.
AnimationController에 있는 Animator를 가져오기 위해 public으로 바꿔주었고,
Awake에서 Animator 컴포넌트에 접근했다.
OnEnable을 이용해 플레이어를 바꿀 때 다시 Animator를 설정하도록 해주었다.
[OnEnable에 대한 설명]
OnEnable() 메서드는 MonoBehaviour 클래스의 생명 주기 함수 중 하나로, 해당 스크립트가 활성화될 때 호출됩니다. 스크립트가 비활성화된 후 다시 활성화될 때마다 호출됩니다.
일반적으로 OnEnable() 메서드는 초기화 작업이나 다시 활성화될 때 필요한 설정을 수행하는 데 사용됩니다. 예를 들어, 게임 오브젝트가 활성화될 때마다 캐릭터의 상태를 초기화하거나, 이벤트 리스너를 추가하거나, 다른 게임 오브젝트와의 상호 작용을 시작하는 등의 작업을 수행할 수 있습니다.
잘 작동하는 모습이다.
'Unity 개발' 카테고리의 다른 글
[Unity] 싱글톤 기능 구현하기 (0) | 2024.05.20 |
---|---|
[Unity] 캐릭터 스텟(Stat) 시스템 만들기 (0) | 2024.05.17 |
[Unity] InputField(TMP) 로그인 기능 구현 (0) | 2024.05.13 |
[Unity] 플레이어를 따라오는 카메라 만들기(2D) (0) | 2024.05.10 |
[Unity] New InputManager로 플레이어 이동 구현하기 (0) | 2024.05.08 |