공부/Unity Engine

[23.12] 대화 시스템을 구현하기 위한 Yarn Spinner 공부

창작꾼 븐틴이 2023. 12. 10. 23:54
728x90
반응형

https://docs.yarnspinner.dev/beginners-guide/syntax-basics

해당 내용을 가지고 공부했습니다!

 

게임 개발 시 유니티 내 대화 시스템을 구현할 때 활용할 것이기에 공부합니다!

(그래서 유니티 카테고리)

 

//

기본

 

title: 연습  => 약간 이 텍스트의 이름과 같은 느낌 [헤더]
---  => 시작을 의미

븐틴이: ㅎㅇ

누군가: 누구세요

븐틴이: 저는요

    -> 나에요 => 선택지 연출
        누군가: ?
    -> 그러게요
        누군가: 아 네

누군가: 안녕히계세요
=== => 끝을 의미

 

-> 는 중첩이 가능하다

=> 다변수 서사 만들기 용이함.

 

<<jump (이동할 헤더)>>

여러 개의 대화문을 만들었다면,

대화문끼리 <<jump A>>로 연결할 수 있음.

대화문의 헤더를 노드라고 칭한다면, 해당 노드 이름을 변수로 사용하는 느낌.

 

여러 대화문을 만들어서 연결하며 관리하면,

편집할 때에 드는 시간적 비용을 줄일 수 있고 용이할 것.

 

변수

Number / String / Boolean

다른 언어들처럼 3가지의 형태로 변수를 선언하고 응용이 가능한 듯.

선언과 설정, 체크(?)가 가능하다고 함.

 

<<declare $characterName = "Venteen">> // 문자 형태

<<declare $goldAmount = 100>> // 수 형태
<<declare $hasAmulet = false>> // 논리 형태

 

$표시로 변수 이름이 시작해야 함.

(문자, 숫자, 밑줄로만 구성)

 

<<set $characterName to "Venteen2">>

set를 활용해 변수 값을 변경할 수 있음

 

<<set $hamCounts = 2 + 1>>
<<set $numberOfPets = $numberOfPets + 1>>

이런 형태로 논리 연산도 가능하다고 함.

 

참고~

 

연산자 우선순위처럼, 위에 연산들도 가지고 있음.

 

 

사용할때는 {} 중괄호 이용

예문

위 예문처럼 <<if>> <<elseif>> <<else>> <<endif>> 와 같은 조건 개념을 사용할 수 있음

이러한 구문 활용도 가능

 

유니티 내에 있는 시스템 변수를 가져와서 응용하는 것 또한 연습해야겠다

 

Yarn 스크립트 함수

visited(string node_name)

visited_count(string node_name)

=> 해당 제목을 가진 노드를 방문했는 지 안 했는 지에 따라 활용가능한 함수 (논리, 횟수)

 

random() // 0,1 사이 난수

random_range(number a, number b) // a,b 사이 정수

dice(number sides) // 1과 변수사이의 정수 반환 (주사위 생각)

round(number n) // 정수 반올림

round_places(number n, number places) // 소수점 n 에 맞게끔 반올림, 엑셀 함수와 비슷한 맥락

 

floor(number n) // 정수 내림

ceil(number n) // 정수 반올림 (양의 방향) / 올림..?

inc(number n) // +1

dec(number n) // -1

decimal(number n) // 소수 부분 반환 (0.51)

int(number n) // 0에 가깝게 내림

 

 

끝~

이제 실전에 넣자~

728x90
반응형