유니티:코딩기초
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요[편집 | 원본 편집]
기본적인 동작은 C#이나 자바 코드로 동작한다.
코드는 저장 해야 유니티에 반영된다.
주의[편집 | 원본 편집]
스크립트 파일을 만들면 자동으로 클래스명이 만들어지는데, 나중에 파일의 이름을 바꿔도 클래스명이 자동으로 바뀌진 않는다. 이름을 바꿀 땐 클래스명도 함께 바꾸어주어야 함에 유의.(파일명과 클래스명이 다르면 제대로 작동하지 않는다.)
구조[편집 | 원본 편집]
처음 만들면 다음과 같은 것들이 생긴다.
구조 | 설명 |
---|---|
using | 사용할 라이브러리를 지정하여 가져온다. using 뒤의 값은 네임스페이스로, 해당 네임스페이스에 존재하는 코드들을 가져와 사용한다. |
Start() | 게임이 시작될 때 한 번 실행되는 메서드. |
Update() | 매 프레임마다 실행되는 메서드. |
코딩팁[편집 | 원본 편집]
Debug.Log("내용");
형태로 각각의 길에서 잘 실행이 되고 있는지 체크할 수 있다. 이 메시지는 콘솔창에서 볼 수 있다.
클래스[편집 | 원본 편집]
클래스 만들기[편집 | 원본 편집]
프로젝트 창에서 우클릭, 스크립트 파일을 만든다. 유니티에선 기본적으로 하나의 클래스는 하나의 파일에 담긴다.
유니티에선.. Monobehavior 클래스를 상속받아서 만든다.
유니티 오브젝트의 생명주기. 특정한 기능을 하는 함수들.[편집 | 원본 편집]
타입은 void 함수이다.
활용 | |||
---|---|---|---|
활성화 | OnEnble() | 게임 오브젝트가 활성화 되었을 때. | 로그인 했음을 알린다. |
초기화영역 | Awake() | 게임 오브젝트가 최초로 생성될 때 실행되는 함수. 장면에 들어갈 때 발생한다. | 리젠되었음을 알린다. |
Start() | 업데이트 영역으로 들어가기 전에 최초실행. | 리젠이 준비됨을 알린다. | |
물리연산영역 | FixedUpdate() | 물리연산을 하기 전에 실행되는 업데이트 함수. 1초에 50번 작동한다.(CPU많이 사용) | |
게임로직영역 | Update() | 게임로직을 프레임에 따라 업데이트한다. 환경에 따라 실행주기가 떨어질 수 있음. | 동작발생을 보여준다. |
LateUpdate() | 모든 업데이트가 끝난 후 실행된다. 업데이트와 동일주기로 실행됨. | 로직의 후처리(경험치 획득) | |
비활성화 | OnDeisable() | 게임 오브젝트가 비활성화, 삭제될 때.(스크립트가 꺼질 때.) | 로그아웃 했음을 알린다. |
해체 | OnDestroy() | 게임 오브젝트가 지워질 때 실행되는 함수. | 데이터 삭제 메시지 |
상속[편집 | 원본 편집]
코딩의 기본은 재사용에 있다. 혹은 다른 이들의 코드를 복붙하거나.
기본적으로 몬스터의 행동을 제어할 때, 몬스터 전체에 대한 코드를 만들고, 종족에 따라 다른 행동을 하게끔 상속된 코드를 만들고, 특수한 몬스터의 경우 또 위의 코드를 상속받아 만드는 방식으로 진행해야 편하다.
자세한 것은 C sharp:클래스 에서.
다음과 같은 상속이 가능하겠다.
클래스 | 설명 |
---|---|
사람 | 렌더기능, 물리, 애니메이션, 체력 등 모두가 공유하는 속성. |
플레이어 | 조작, 스킬 등을 추가. |
몬스터 | 인공지능 등 추가.(사람의 애니메이션을 빼고, 다른 종류의 애니메이션 추가.) |
오히려 상속에 지나치게 의지해 수정이 어려워지는 경우도 있다. 때문에 유니티에선 필요한 기능을 컴포넌트에 가져가 붙이는 방식을 사용한다.
이러한 방식은 재사용 뿐 아니라 수정에 있어서도 발생할 오류에 대한 걱정을 덜 수 있다.(덩어리가 작으니까.)