04/09
닷지 프로젝트 (Dodge)
템플릿 : 3D
플랫폼 설정 : android
해상도 설정 : 1920x1080
레이아웃 설정 : custom
3D object > Plane 생성
reste transform
Scale(2,1,2)
Plane 크기는 20유닛
메터리얼 생성
- 쉐이더와 텍스쳐가 합쳐진 에셋
- 오브젝트의 픽셀 컬러를 결정
셰이더
- 주어진 입력에 따라 픽셀의 최종컬러를 결정하는 코드
- 질감과 빛의 의한 반사와 굴절등의 효과를 만듬
메터리얼 생성
Create > Material(Plane Color)
Albedo 옆에 Color선택후 검정색으로 설정
Plane에 메터리얼 적용
벽 만들기
Cube생성 (Wall) -> reset transform
Cube의 사이즈 1유닛
position : 0, 0.5, 0
scale : 20, 1, 1
앞쪽 모서리로 이동
Ctrl + D (복제)
0, 0.5, -10
Ctrl + D (복제)
position: 10, 0.5, 0
scale : 1, 1, 20
Ctrl + D (복제)
position: -10, 0.5, 0
scale: 1, 1, 20
빈게임오브젝트 생성 (Level)
reset transform
Plane, Wallx4 를 Level의 자식으로
카메라 뷰 설정
Scene뷰에서 설정하고
카메라 선택 후 Ctrl + shift + F
씬 저장
플레이어 제작
Create > 3D Object > Capsule
name : player
position : 0,1, 0
플레이어 메터리얼 만들기
Material 생성 (Player Color)
color : 파란색
메터리얼 적용
Player 게임 오브젝트에 태그 설정 : Player
Rigdbody 컴포넌트 추가
Freeze Position : Y
Freeze Rotation : X, Z
** 플레이어 스크립트 생성 **
Scripts 폴더 생성
Create > C# Script (PlayerController)
스크립트 수정
변수 선언
public Rigidbody playerRigidbody;
public float speed = 8f;
사용자 입력 감지 하기
Update메서드 수정
방향키(4방향)를 눌러 Player의 rigidbody에 힘을 가해 움직이기
API : https://docs.unity3d.com/ScriptReference/Input.GetKey.html
Input.GetKeyDown
Input.GetKey
Input.GetKeyUp
Player에 스크립트 적용
Player의 Rigdbody 컴포넌트 Assign
플레이어 사망처리
Die메서드 추가
-비활성화 this.gameObject.SetActive(false);
Update메서드 개선
Input.GetAxis("Horizontal");
Input.GetAxis("Vertical");
Edit > ProjectSetting > InputManager (Axes)
Assets
Projectsetting
AddForce : 관성이 적용
힘을 누적해 점진적으로 증가
velocity
이전속도를 지우고
벡터는 위치, 방향, 회전, 속도, 크기등에서 사용
벡터의 종류(요소, 요소)
1. 수 벡터
2. 기하 벡터
벡터 : 방향, 크기
상대좌표 : 현재 좌표에서 나의 좌표(부모로부터)
절대좌표 : 게임세상속에서 나의 좌표
벡터의 곱 : 스칼라 곱
벡터의 길이가 늘어난다 (요소의 곱)
ex: (-3, 4) x 2 = (-3 x 2, 4 x 2) => (-6, 8)
크기가 1인 벡터 : 단위 벡터 (방향 벡터)
Vector3.forward (0, 0, 1) 회전을 무시
transform.forward 회전을 고려
벡터의 합 : 요소의 합
A (3, 2) + B (1, 6) = (4, 8)
B (-2, 8) - A (1, 3) = (-2 -1, 8-3) => (-3, 5)
정규화 (단위벡터)
normalized
크기
메그니튜드
유니티에디터
Fov 시야
오일러 각
짐벌락
사원수 쿼터니언