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

C# 유니티 공부 10 - 플레이어 대화, NPC 초상화 (Dictionary, 구분자, Split 함수 사용)

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

★★★ 대화, 초상화 설정.

- Dictionary와 구분자의 조합. (중요)- 헷갈리는 부분이 많았어서 구체적인 내용은 스크립트에 주석으로 표시.

 

<요점 >

1.. 초상화 이미지 배열 생성 (유니티에서 이미지 삽입 필요)

2. 'ID+숫자'의 형태로 초상화 이미지 저장. (Dictionary 이용)

3. 오브젝트에 ID부여하고 ID를 변수로 하여 대화 저장. (Dictionary 이용)- 구분자 사용.(Split 함수)(ID+숫자에서.... 원하는 초상화가 사용되도록 그 숫자를 기재해주는 것.)ex.   "안녕?:0", 구분자와 Split()을 사용하여 문자를 배열화시킬 수 있다.
         안녕? -> [0]번 배열
         문자열 0 -> [1]번 배열

 


 

1. ObjectData Script 생성

- ID와 NPC여부를 확인할 수 있는 public 변수 생성.

- Object마다 직접 ID와 NPC여부 기재.

 

2. Talk Manager 빈 Object 생성.

 

3. Talk Manager Script 생성.

1)  Dictionary<A, B> 변수 생성. ----> A번에 B라는 정보를 저장할 수 있는 클래스.

(변수 선언 후에는 Awake에서 꼭 초기화 해주기.)

 

2)  대화 데이터를 저장해 줄 함수 생성.

(함수는 Awake 단계에서 활성화 시켜주면 됨.)

 

3) 위에서 만들고 초기화해준 GenerateData 함수에 데이터 저장.

Dictionary.Add로 데이터 저장. 

TalkData.Add(1000, new string[] { "안녕?", "이 곳에 처음 왔구나?" });

대화가 2개 이상인 경우에는 배열로 저장.

 

4) 지정된 대화 문장을 반환하는 함수 생성. 

 

 

5) Game Manager에서 id와 isNPC를 확인하여 대화를 가져오는 함수 생성.

(바로 위에서 만든 함수를 내부에 사용하여 string으로 저장.)

대화가 나와야 할 부분에, 방금 만든 함수를 Object스크립트의 id와 isNPC를 기재하여 실행.

 

 

 

 

 

 

 

Q. 캔버스.. UI 사이즈를 줄여야 할 것 같은데??

반응형

댓글