본문 바로가기
개발자가 되어보자..공부공부

C# 유니티 공부 12 - 키보드 타자 애니메이션(Typing), UI 대화창, 초상화 애니메이션

by 묭묭이와소담이 2022. 12. 12.
반응형

* 대화창 애니메이션

1) 대화창이 아래에서 위로 올라오는 애니메이션
- 애니메이터 하나 생성하여 대화UI에 추가.
- 빈 애니메이션 생성하고
- 파라미터 bool 값 생성. (IsShow.... 보여주고있는가?)
- 애니메이션 2개 더 생성. (토크중의 애니메이션 <-> 애니메이션 중지)
- 대화창 아래로 내려놓기? (아래에서 위로 올라오는 애니메이션)
- GameManger에 가서 애니메이션 코딩 진행.
기존 게임오브젝트에서 가져오던 talkpanel을 Animator에서 가져오는 것으로 변경.
talkpanel.setbool("IsShow", isactuon... true인지 false이지...)

- GameMager에서 Hiarachy 다시 집어넣어주기. 
(게임오브젝트에서 애니메이터로 변경했기 때문에)

 




2) 초상화 애니메이션
- 대화창의 초상화 애니메이션 생성. (직접 만들어도 됨.)
- 파라미터는 Trigger 사용. 
- Has Exit Time은 애니메이션 진행이 모두 끝난 다음에 자동으로 다음 트랜지션으로 이동.
(즉, 컨디션에 설정을 해줄 필요가 없음.)
- 코딩 진행.
- 애니메이션 진행은? 초상화가 새로 처음 나올 때! 
(이전과 다른 이미지가 나왔을 때!)

 

 


3) 타이핑 애니메이션
- 타이핑 스크립트 생성.
- 표시할 대화 문자열을 따로 변수로 저장. 
- 문자열 생성 속도 변수 저장.
- 함수 4개 생성.
(MSG셋팅, 타이핑시작, 타이핑중, 타이핑끝)
- UI 클래스 추가한 다음. Text 클래스의 변수 생성. (awake에서 초기화까지 필요)
(이 변수를 통해 타이핑 시작단계에서 대화를 공백으로 만들어 줄 예정.)
- 타이핑 될 순서...인덱스 변수 필요.(변수 생성)
- Invoke함수와, 재귀함수를 통해 TargetMSG와 입력되는 메세지가 동일할 때까지 재귀함수 반복.
- 타겟메세지와 같아지면 마무리 함수 실행.
 (앤드커서 애니메이션 진행.)

 

★ 애니메이션을 코드로 처리해야 할 때에는...
Start, Ing, End 3가지 부분을 나누어서 코딩하면 처리하기 매우 편함. 

 

4) 타이핑 사운드
- 오디오소스 넣고 play() 로 재생.
- 공백, 특수문자에서는 소리 제외하기.
작은따옴표는 1글자를 표현할 때 사용.... 큰따옴표는 문자열..! 
(조건문 사용)

 


5) 타이핑 끝까지 보기. (커서 애니메이션 나오는 것 까지!)

 

 

 

 

 

반응형

댓글