Guide For Unity Developer

유니티 게임 개발자를 위한 디토랜드 Quick Start 강좌에요.

이 문서는 C# 스크립트를 사용하는 유니티 게임 개발자가 디토랜드와 Lua 스크립트에 쉽게 적응할 수 있도록 하기 위해 제작되었어요.

에디터

유니티에서는 하이어라키와 프로젝트뷰가 분리되어 있지만 디토랜드에서는 통합되어 있어요.

씬뷰와 게임뷰도 통합되어 있어요.

C#과 루아의 차이점

내용

C# Script

Lua Script

코드 블록

코드 블록

청크

한줄 주석

//

--

여러줄 주석

/*로 시작해서

*/로 닫는다.

--[[로 시작해서

]]--로 닫는다.

같지 않음 연산자

!=

~=

논리 연산자

&&

||

!

and

or

not

널 값

null

nil

거짓 값

false

false, nil

지역 선언

private 또는 생략

local

전역 선언

static

생략

문자열 합치기

+

..

배열 인덱스

0부터 시작

1부터 시작

배열 길이

arrName.Length 또는

listName.Count

#arrName

#listName

라인 끝맺음

;

기본적으로 미사용

한줄에 여러 내용 쓸때만 사용

코드의 흐름

C#에서는 선언된 함수나 변수를 위아래 구분없이 접근할 수 있지만, Lua에서는 선언한 부분 아래에서만 접근할 수 있습니다.

변수

Lua에서 변수는 자료형 표기없이 선언합니다.

함수

Lua에서 함수는 인자/반환값 자료형 표기없이 선언합니다.

리스트

Lua에서 리스트는 table로 구현할 수 있습니다.

제어문과 반복문

C#과 Lua의 제어문과 반복문은 비슷한 부분이 많습니다.

하지만 Lua에는 switch문은 존재하지 않습니다.

Lua에서도 for문이나 while문을 break로 중단할 수 있습니다.

그러나 if문안에서 continue는 사용할 수 없습니다.

goto문

Lua에서도 goto문을 사용할 수 있습니다.

유니티와 디토랜드의 차이점

내용

유니티

디토랜드

오브젝트 편집 단축키

Q

W

E

R

1

2

3

4

테스트 플레이 단축키

컨트롤 + P

F5

재사용 가능한 객체

프리팹

팔레트

좌표계 (가로, 세로, 높이)

X

Z

Y

Y

X

Z

스크립트를 읽는 순서

유니티에서는 Project Settings의 Script Execution Order에서 설정한 순서를 토대로 스크립트를 읽지만, 디토랜드에서는 스크립트가 서버인지 클라이언트인지에 따라 읽는 방식이 결정됩니다.

서버 스크립트는 ScriptServer에 있는 스크립트를 제일 먼저 읽고, Workspace에 있는 스크립트는 순서대로 읽습니다.

클라이언트 스크립트는 ScriptClient에 있는 스크립트를 제일 먼저 읽고, Workspace에 있는 스크립트는 순서대로 읽습니다.

동적으로 생성된 오브젝트의 스크립트들은 생성되는 시점에서 읽고, 모듈은 require로 참조되는 시점에서 읽습니다.

계층 구조로 오브젝트 참조

유니티에서는 Find 함수에서 문자열로 오브젝트의 계층을 탐색해서 접근할 수 있지만, 디토랜드에서는 별도의 함수를 사용하지 않고 접근할 수 있습니다.

에디터 모드에서 변수 편집

유니티는 스크립트에서 public으로 선언했거나 직렬화한 변수가 에디터 모드에서 표시되지만, 디토랜드에서는 프로퍼티창Script Parameters 항목에서 추가할 수 있습니다.

Script Parameters에서 추가한 변수는 아래의 방법으로 접근할 수 있습니다.

다른 스크립트의 변수/함수 호출하기

public으로 변수/함수 선언

같은 종류(서버/클라)의 스크립트끼리만 접근할 수 있습니다.

서버 스크립트1에서 선언된 public 변수/함수는 서버 스크립트2에서는 접근이 가능하지만, 클라이언트 스크립트에서는 접근할 수 없습니다.

전역으로 선언된 변수/함수

같은 종류(서버/클라)의 스크립트끼리만 접근할 수 있습니다.

서버 스크립트1에서 선언된 전역 변수/함수는 서버 스크립트2에서는 접근이 가능하지만, 클라이언트 스크립트에서는 접근할 수 없습니다.

같은 종류의 스크립트(서버/클라)에서 전역 변수/함수는 같은 이름으로 선언할 수 없는 점에 주의하세요.

서버<->클라이언트 스크립트간 함수 호출

서버 스크립트에서 클라이언트 스크립트의 함수를 호출하거나, 클라이언트 스크립트에서 서버 스크립트의 함수를 호출하려면 바인딩 이벤트를 이용해야 합니다.

이벤트 샘플의 BoradcastEvent, SendEventToServer, SendEventToClient를 참고하세요.

유니티의 함수를 디토랜드에서 사용하기

기본 이벤트 함수

충돌 체크

SetActive와 ActiveSelf

Instantiate와 Destroy

transform.GetChild

더 많은 기능을 보려면

샘플 맵이나 API Reference를 참고하세요.

컨텐츠 제작 강좌

Tutorial

Last updated

Was this helpful?