유니티 기능
Project
폴더 라벨링
에셋 관리를 위한 폴더 네이밍. 회사에 따라 규칙이 있음.
Scene
- 씬도 계층 구조를 가질 수 있음
- Scene - 우클릭 - Find in Project 하면 위치 찾을 수 있음
- Project - 우클릭 - Create - Scene으로 씬 생성 가능
Inspector
컴포넌트(Component) - 기능
객체마다 각각 특성 컴포넌트를 활용해서 객체마다 기능을 추가/삭제
- 비활성화 (alt + shift + a) : 이름 옆 체크박스 해제 → 렌더링 되지 않음 (연산 X)
- Static (정적 게임 오브젝트 설정) : 무엇인가 미리 계산을 하기 위해 움직이지 않는 게임 오브젝트 설정 (컴파일단계에서 계산) ex) 건물, 주변 환경 등
- Tag : 게임 오브젝트의 별명
Console View
Log 확인하는 창
Window - General - Console 또는 Ctrl + Shift + c
이론
기준점 (Pivot)
center - 중심점(무게중심) pivot - 그 오브젝트의 기준점
Center는 사용하기 어렵기 때문에 기본적으로 pivot - local로 설정해서 사용
좌표계
Local : 자기 자신 Global : 월드 기준
NameSpace
코드의 지역성 설정
namespace 네임스페이스명 { }// 네임스페이스 생성
using 네임스페이스명; // 특정 네임스페이스 내부의 코드를 사용하겠다
using UnityEngine; // 유니티 엔진의 네임스페이스를 사용하겠다.
주의
플레이 상태에서 작업하면 정지 시 다 날라감!!!
Preferences - Color - Playmode Tint 조정하면 실수 방지 가능
실습
Script 실습
Script 생성
Project - Create - Monobehavior Script
<중요>
- 처음에 생성할 때 작성한 파일 이름대로 스크립트를 작성하기 때문에 이후 파일 이름 변경이 어려움
- 라이더에서 클래스명 ctrl + r 두번 눌러서 변경하면 파일 이름과 한번에 변경 가능 (참조까지)
- 클래스명이 같은 파일이 있으면 에러! (동일한 네임스페이스)
함수 실행
void Start(){
// 처음 생성될 떄 한번 실행
Debug.Log("Start 함수 실행");
}
void Update(){
// 매 프레임마다 실행
Debug.Log("Update 함수 실행");
}
Script 실행
게임 오브젝트의 Component로 추가
로그
Debug.Log("Start 함수 실행"); // 일반 로그
Debug.LogWarning("Start 함수 실행"); // 경고 로그
Debug.LogError("Start 함수 실행"); // 에러 로그
Collapse - 중복 메세지 제거
Error Pause - 에러 떴을 때 멈춤
오브젝트 실습
게임 오브젝트 정렬
오브젝트 여러개 선택 후 Position에 L(-5, 5)하면 순서대로 정렬됨 → -5부터 5까지 값을 준다는 뜻
R(-5, 5)하면 랜덤으로 지정
2D 패키지 설치
Window - Package Manager - 2D install
2D 오브젝트
9-Sliced : 9개로 자를 수 있는 오브젝트 → 최적화 관련할 때 사용
Plane vs Quad
Shaded Wirefram Draw Mode - 점과 선과 폴리곤 확인 기능
평면(Plane)은 121 점 200 삼각형, 사각형(Quad)는 4 점 2 삼각형
Mesh
점/선/면에 대한 정보 → 큐브가 3차원 도형이면서도 가벼워서 가장 많이 씀
유니티의 1 = 1m (가끔 100, 100, 100 이런 식으로 뜨면 모델링에서 cm 단위로 한 것)
Mesh Filter vs Mesh Renderer
필터는 모양, 형태를 담는 곳 렌더러는 모양, 형태를 그리는 곳
캐릭터만들기 실습
그룹화 기준점 받기
빈 게임 오브젝트 생성 - 기준점이 바닥면에 닿는 중심점에 잡히게 하기 - 요소들 자식으로 넣기
프리팹
만든 게임 오브젝트를 에셋으로 만드는 작업
오브젝트를 Project에 넣으면 언제든 꺼내서 사용할 수 있는 에셋이 됨
머티리얼(Material)
Project - Create - Material
머티리얼 생성해서 오브젝트에 넣으면 색상 적용
그냥 오브젝트에 머리리얼을 추가하면 프리팹에는 적용이 되지않기 때문에 프리팹에도 덮어씌우기 위해서는 오른쪽 Inspector - Prefab - Overrides에서 Apply All 해야함 (Revert All은 프리팹 상태로 되돌리기)
Select 누르면 Project에서 프로젝트 위치 알려줌
Materials은 Mesh Renderer 내부에 있음
Movement 실습
forward (0,0,1) backward(0,0,-1)
this.transform.position = this.transform.position + Vector3.forward;
// 자기자신(어몽어스캐릭터)의 Transform의 position(현재 위치)에
// 현재 위치 + forward(0,0,1)이라는 값을 넣음
기타 단축키
Ctrl + K + D : 들여쓰기 정렬
edit -preference - Scene view - Create object at Origin 체크 : 오브젝트 생성 시 0,0,0에서 생성