유니티:코딩기초

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2021년 8월 9일 (월) 11:33 판 (→‎구조)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

틀:유니티

  1. 유니티:개요
  2. 유니티:기본 조작
    1. 유니티:에셋스토어
  3. 유니티:카메라
  4. 유니티:오브젝트
    1. 유니티:데이터 입력받기
    2. 유니티:오브젝트 이동(오브젝트 조작)
    3. 유니티:힘으로 오브젝트 이동
    4. 유니티:충돌 이벤트
    5. 유니티:오브젝트 작성 tip
    6. 유니티:프리팹
  5. 유니티:코딩기초
    1. 유니티:C sharp 코딩 편의기능
    2. 유니티:MonoBehaviour
    3. 유니티:이벤트 메서드
    4. 유니티:컴포넌트 조작하기
  6. 유니티:UI
  7. 유니티:게임 내 화면
  8. 유니티:플레이어
    1. 유니티:모델
    2. 유니티:캐릭터 이동
    3. 유니티:애니메이션
    4. 유니티:주인공 시점
  9. 유니티:맵
    1. 유니티:투명한 벽 만들기
    2. 유니티:내비게이션
  10. 유니티:씬
  11. 유니티:몬스터
  12. 유니티:아이템
  13. 유니티:음향
    1. 유니티:배경음
    2. 유니티:효과음
  14. 유니티:빌드
  15. 유니티:VR
    1. 유니티:VR:UI
    2. 유니티:VR:VR로 변환
  16. 유니티:팁

개요[편집 | 원본 편집]

기본적인 동작은 C#이나 자바 코드로 동작한다.

코드는 저장 해야 유니티에 반영된다.

주의[편집 | 원본 편집]

스크립트 파일을 만들면 자동으로 클래스명이 만들어지는데, 나중에 파일의 이름을 바꿔도 클래스명이 자동으로 바뀌진 않는다. 이름을 바꿀 땐 클래스명도 함께 바꾸어주어야 함에 유의.(파일명과 클래스명이 다르면 제대로 작동하지 않는다.)

구조[편집 | 원본 편집]

처음 만들면 다음과 같은 것들이 생긴다.

구조 설명
using 사용할 라이브러리를 지정하여 가져온다. using 뒤의 값은 네임스페이스로, 해당 네임스페이스에 존재하는 코드들을 가져와 사용한다.
Start() 게임이 시작될 때 한 번 실행되는 메서드.
Update() 매 프레임마다 실행되는 메서드.

코딩팁[편집 | 원본 편집]

Debug.Log("내용"); 형태로 각각의 길에서 잘 실행이 되고 있는지 체크할 수 있다. 이 메시지는 콘솔창에서 볼 수 있다.

클래스[편집 | 원본 편집]

클래스 만들기[편집 | 원본 편집]

프로젝트 창에서 우클릭, 스크립트 파일을 만든다. 유니티에선 기본적으로 하나의 클래스는 하나의 파일에 담긴다.

유니티에선.. Monobehavior 클래스를 상속받아서 만든다.

유니티 오브젝트의 생명주기. 특정한 기능을 하는 함수들.[편집 | 원본 편집]

타입은 void 함수이다.

활용
활성화 OnEnble() 게임 오브젝트가 활성화 되었을 때. 로그인 했음을 알린다.
초기화영역 Awake() 게임 오브젝트가 최초로 생성될 때 실행되는 함수. 장면에 들어갈 때 발생한다. 리젠되었음을 알린다.
Start() 업데이트 영역으로 들어가기 전에 최초실행. 리젠이 준비됨을 알린다.
물리연산영역 FixedUpdate() 물리연산을 하기 전에 실행되는 업데이트 함수. 1초에 50번 작동한다.(CPU많이 사용)
게임로직영역 Update() 게임로직을 프레임에 따라 업데이트한다. 환경에 따라 실행주기가 떨어질 수 있음. 동작발생을 보여준다.
LateUpdate() 모든 업데이트가 끝난 후 실행된다. 업데이트와 동일주기로 실행됨. 로직의 후처리(경험치 획득)
비활성화 OnDeisable() 게임 오브젝트가 비활성화, 삭제될 때.(스크립트가 꺼질 때.) 로그아웃 했음을 알린다.
해체 OnDestroy() 게임 오브젝트가 지워질 때 실행되는 함수. 데이터 삭제 메시지

상속[편집 | 원본 편집]

코딩의 기본은 재사용에 있다. 혹은 다른 이들의 코드를 복붙하거나.

기본적으로 몬스터의 행동을 제어할 때, 몬스터 전체에 대한 코드를 만들고, 종족에 따라 다른 행동을 하게끔 상속된 코드를 만들고, 특수한 몬스터의 경우 또 위의 코드를 상속받아 만드는 방식으로 진행해야 편하다.

자세한 것은 C sharp:클래스 에서.

다음과 같은 상속이 가능하겠다.

클래스 설명
사람 렌더기능, 물리, 애니메이션, 체력 등 모두가 공유하는 속성.
플레이어 조작, 스킬 등을 추가.
몬스터 인공지능 등 추가.(사람의 애니메이션을 빼고, 다른 종류의 애니메이션 추가.)

오히려 상속에 지나치게 의지해 수정이 어려워지는 경우도 있다. 때문에 유니티에선 필요한 기능을 컴포넌트에 가져가 붙이는 방식을 사용한다.

이러한 방식은 재사용 뿐 아니라 수정에 있어서도 발생할 오류에 대한 걱정을 덜 수 있다.(덩어리가 작으니까.)