(주) 망나니 힘집
[탑다운] 초상화 본문
* 초상화 *
전 글에서 Npc 인지 아닌지 구별한 이유 : 초상화
sprite 를 갖고 와서 maltiple 로 변경, no fillter 로 변경 . pixel per size를 알맞게 변경하시고 에디터에 들어가 Grid by cell size 로 변경하고 pixel size 를 알맞게 변경한 후 padding 에 1값을 넣어주는 것 등등 sprite 조정을 해주면 여러 이미지가 붙어 있던 것이 각각의 이미지로 구분이 됩니다.
- 알맞게 조정을 해주신 다음 -
대화창에 초상화가 들어갈 이미지를 하나 추가해줍니다. 이름을 potrait 라고 변경한 후
GameManager 스크립트에 변수를 생성하고 할당해줍니다.
//portrait 변수를 생성합니다.
public Image portraitImg;
if(isNpc)
{
talkText.text = talkData;
//npc일 때만 이미지를 보여준다. Color 맨뒤 매개변수는 투명도
portraitImg.color = new Color(1, 1, 1, 1);
}
else
{
talkText.text = talkData;
portraitImg.color = new Color(1, 1, 1, 0);
}
이렇게 코드를 짭니다.
주의 : 스프라이트가 한 개가 아니고 대화에 따라 npc 의 표정이 변화되는 상태를 추가하여야 합니다.
#TalkManager Script
//초상화 데이터를 저장한 Dic 변수 생성
Dictionary<int, Sprite> portraitData;
//초상화 스프라이트를 저장한 배열 생성
public Sprite[] portraitArr;
>>>배열을 생성하면 TalkManager 에 배열이 생성된다. size 를 입력해서 스프라이트를 추가한다.
// id + i 를 입력하고 배열에 넣어줍니다.
//id =1000
portraitData.Add(1000 + 0, portraitArr[0]);
portraitData.Add(1000 + 1, portraitArr[1]);
portraitData.Add(1000 + 2, portraitArr[2]);
portraitData.Add(1000 + 3, portraitArr[3]);
portraitData.Add(2000 + 0, portraitArr[4]);
portraitData.Add(2000 + 1, portraitArr[5]);
portraitData.Add(2000 + 2, portraitArr[6]);
portraitData.Add(2000 + 3, portraitArr[7]);
//지정된 초상화 스프라이트를 반환할 함수를 생성한다.
public Sprite GetPortrait(int id, int portraitIndex)
{
return portraitData[id + portraitIndex];
}
//여기서 NPC 표정은 문장과 1:1 매칭이기 때문에(문장마다 표정이 다르기 때문에)
//이런 식으로 뒤에 구분자를 만든다.
talkData.Add(1000, new string[] { "안녕:0" , "반가워:1" });
talkData.Add(2000, new string[] { "누구야?:0" ,"말걸지마:1" });
//구분자를 쓰면 한 문장이 두문장이 되는 것이기 때문에 0번째 인덱스를 사용하여야 한다.
talkText.text = talkData.Split(':')[0];
//Parse(): 문자열을 해당 타입으로 변환해주는 함수 -> 이유 talkData 가 string 이기 때문에 int 형으로 바꿔준다.
portraitImg.sprite = talkManager.GetPortrait(id, int.Parse(talkData.Split(':')[1]));
*주의: Parse() 는 문자열 내용이 타입과 맞지 않으면 오류가 발생한다. *
그 후, GameManager 에 Portrait Img 에 Portrait 이미지를 집어넣는다.
>>> 그렇다면 정상적으로 작동이 된다. 드디어 끝났다...
https://www.youtube.com/watch?v=qJjfYvEYKiE
복습 꾸준히 하자.
'유니티 최고 > Unity Game Making' 카테고리의 다른 글
[탑다운] 오브젝트 관리 , 대화 시스템 (0) | 2022.01.20 |
---|---|
[탑다운] 대화창 UI, 데이터 전달, 상태 전환, UI 애니메이션 (1) | 2022.01.19 |
[탑다운] 십자가 이동, 애니메이션 설정, 조사 액션 (0) | 2022.01.19 |
[탑다운] 룰타일, 애니메이션 타일, 외부 경계 설정, 픽셀 퍼펙트 (0) | 2022.01.18 |