본문 바로가기

Unity/Unity2D_TopDown

Unity2D_TopDown - 초상화 애니매이션

1. 초상화관련 이미지 오브젝트 생성

(1) - 8개의 이미지가 들어가 있는 sprite를 pixel per unit = 24로 설정하고 34x46크기로 자른다

(2) - 판넬Image 오브젝트 안에 새로운 image오브젝트를 생성(Potrait)

(3) - Rect Transform를 shift와 alt키를 이요하여 오른쪽아래로 위치하게 해주고 이지미 크기를 조정

 

 

2.스크립트 작성

 (1) - GameManigerScript 상단에 public Image potrait;를 선언하고 GameManiger 안으로 Potrait 오브젝트를 드래그앤 드랍

 (2) - 플레이어가 스캔한 오브젝트가 NPC 인경우 위에서 설정한 Potrait가 보이도록 색을 조정

 (3) - NPC 가 아닌경우 Potrait 이미지를 투명하게 색을 조정하여 안보이게 함

 

 

(4) - TalkManigerScript에서 int형의 Key에 대응하는 Sprite형의 value가 오는 Dictionary를 하나 만들고

    - 해당 Dictionary에 Key 값으로 이후 다른 스크립트에서 매개변수로써 받아올

      NPC오브젝트에 들어있는 id 값 + idexOf 값을 주고

    - value 값으로는 public Sprite[] pot;를 통해 만든 스프라이트 배열의 원소값을 준다

   *public Sprite[] pot; 로 유니티엔진 밖으로 비어있는 배열을 만들고 size를 적은 후 각 원소에 준비된 스프라이트를

    드로그앤 드랍 한다

**Dictionary를 만들때 value 값은 배열자체 또는 배열의 원소로 표현하는게 가장 효율적이다

 

 

(5) - (4) 까지 하면 NPC와 대화를 이어나갈때 스프라이트가 pot[0]부터 순차적으로만 바뀐다

    - 대화마다 호출할 스프라이트를 다르게 만들어보자

    - 호출할 대화에 :(아무거나 상관없음)이라는 구분자와 각 스프라이트를 호출할 원소번호를 준다

 - 이 후 GameManigerScript를 아래와 같이 작성

*potrait.sprite = sprite타입 으로  계층구조 Ui의 image오브젝트의 속성에 들어간 이미지를 바꿀 수 있다.