브래의 슬기로운 코딩 생활
모바일 게임 개발 중간고사 정리 본문
transform.Translate(x,y,z):게임오브젝트를 현재 위치에서 x,y,z의 거리만큼 이동시키는 명령어
transform.Translate(0,0,1);=>z축 방향으로 1만큼 움직임
transform.Rotate(x, y, z); = 0회전
자식은 부모와 함께 움직임
•스크립트로 Rigidbody부착 – gameObject.AddComponent<Rigidbody>();
•gameObject:스크립트가 연결되어 있는 게임 오브젝트 자신을 가리킴
•public변수:클래스(또는 스크립트파일)외부에서 접근 가능
•private변수: 변수가 선언된 클래스 안에서 만 접근가능
•local변수: 변수가 선언된 중괄호 내부에서만 접근 가능
Start():자동으로 한번 실행
Update(): 매 프레임마다 실행
1초에 1m을 이동 시키고 싶으면
transform.Translate(0,0, 1f * Time.deltaTime);
•프로젝트: 게임을 개발하기 위해 필요한 모든 게임 데이터 파일(에셋)과 그 밖의 설정 파일들을 하나의 폴더 아래에 모두 담아 준 것
화면 구성: (1)Scene , (2)Game , (3)Hierarchy , (4)Project , (5)Inspector
–객체 구성(선, 재질, 크기, 코딩 등)에 대한 설정 변경이 가능
–Transform 속성-
•객체의 초기 생성 크기를 기준으로 배율로 크기 지정이 가능
•Position : 필드 위 객체 위치 설정
•Rotation : 객체의 회전각도 설정Scale : 객체 크기 조정
•[Alt+왼쪽 마우스버튼]을 클릭->drag하여 보이는 각도 이동
•[Alt+마우스휠]을 클릭하여 drag->실제위치는 바뀌지 않고 Scene만 이동
•왼손 좌표계(X=엄지, Y=검지, Z=중지)
•왼쪽마우스클릭:Scene화면 이동
•Alt+왼쪽마우스클릭:보는 각도 이동
•Alt+마우스휠: 보는 위치 이동
•마우스 휠 스크롤: 확대/축소
•마우스오른쪽버튼+(A/D/S/W/,Q/E): 시야각이변하며 키보드 A,D,S,W키로 이동할 수 있음. Q키는 시야각이아래로 내려가고 E키는 시야각이올라감, SHIFT키를 같이 누르
•스냅기능을 사용하여 정확한 거리로 이동
•[Edit]->[Grid and Snap Settings]->Move의 x에 2를 입력
•[Ctrl]키를 누르고 빨간화살표(x축)를 drag하면 x축의 값이 2m단위로 값이 바뀜
•글로벌방향: 모든 오브젝트가 공유하는 방향(절대적 방향)
•로컬방향:모든 오브젝트는 바라보는 고유의 방향, 자신만의 방향을 가지고 있음(상대적 방향)
MainCamera – GameObject클릭->[AlignWithView]클릭: 내가 바라보는 시야가 카메라의 시야가 됨
Main Camera클릭->Orthographic으로 선택: 실행->오브젝트의 사이즈 그대로 보여서 원근이 없어 보임
•Main Camera클릭->[Perpective]로 변경: 원근이 있음
카메라의 Far: 카메라가 볼 수 있는 거리
카메라의 Field of View: 카메라의 줌 정도
태양광선 Directional Light: 회전하면 빛의 각도 변경 가능 / 삭제 하면 어두워짐
Point Light – color로 빛의 색 변경가능 / Range: 범위 / Intensity: 강도
Component->Rigidbody클릭: 중력의 영향을 받음
Mass: RigidBody의 질량.
Drag: 저항력. 움직임에 대한 저항력=마찰력
•프리팹: 게임에서 사용되는 가장 기본적인 요소들이 모여서 바로 사용할 수 있도록 포장된 한 개의 제품
원본 프리팹 설정을 변경하면 모든 프리펩에 적용
•충돌체(Collider):게임 오브젝트들의 충돌을 감지
•Assets->Create->Material •Albedo 오른쪽 박스를 클릭하여 색상 선택: 객체의 색상 설정
충돌체가 없으면 객체가 통과함
Windows->[Search]->Asset Store: 에셋 다운로드 가능
Material – Albedo: 색상 / Metallic:금속재질의 정도 / Smoothness:반사의 정도
OnMouseDown() 충돌체가 있는 게임 오브젝트에 마우스 커서를 대고 왼쪽 버튼을 누르면 이 함수에 있는 명령어들이 자동으로 실행됨
OnMouseUp() 마우스 커서를 눌렀다 떼는 순간 실행
OnMouseEnter() 마우스 커서가 들어가는 순간 실행
OnMouseExit() 마우스 커서가 빠져 나오는 순간 실행
transform.Rotate(x,y,z): x,y,z축 기준으로 자기 자신을 주어진 각도만큼 회전시키라는 명령어
Input.GetKeyDown(키보드): ‘키보드’의 키가 입력되면
KeyCode.UpArrow: 위쪽 화살표
KeyCode.DownArrow: 아래 화살표
KeyCode.RightArrow: 오른쪽 화살표
KeyCode.LeftArrow: 왼쪽 화살표
KeyCode.Space: 스페이스 바
transform.Translate(Vector3.forward* 움직이는속도* Time.deltaTime);
•Vector3.forward:전진
•Vector3.back:후진
•Vector3.left:왼쪽
•Vector3.right:오른쪽
•Vector3.up:위
•Vector3.down:아래
•GetComponent<Renderer>().material.color = Color.red : 객체의 색을 빨강으로 설정한다.\
transform.localEulerAngles : 현제 각도
new Vector3 (x, y, z) : 변경할 새로운 값
속도 점점 줄이기: this.rotSpeed *= 0.96f;
스와이프 길이를 계산하는 방법
스와이프 길이 => 클릭이 끝난 좌표 - 클릭을 시작한 좌표
=> GetMouseButtonDown한 좌표- GetMouseButtonUp한 좌표
Find 함수
GameObject car;
GameObject flag;
GameObject distance;
void Start() {
this.car = GameObject.Find("car");
this.flag = GameObject.Find("flag");
this.distance = GameObject.Find("Distance");
}
ToString() : 수치를 문자열로 반환하는 메서드
length= 22.3333f;
string k = length.ToString(“F2”)//소수이하2자리까지 표현
GameObject distance;
void Start() {
this.distance = GameObject.Find("Distance");
}
this.distance.GetComponent<Text>().text = "골까지" +length.ToString("F2") + "m";
Input.GetMouseButtonDown(0): 오른쪽 마우스 버튼을 누르다
Input.GetMouseButtonDown(1): 왼쪽 마우스 버튼을 누르다
UI를 갱신하는 스크립트를 작성하기 위해서는 소스 앞에 using UnityEngine UI;를 적어줘야 한다.
소리 재생 – Add Component – Audio Source – Play On Awake 체크 해제 – AudioClip에 사운드 파일 드래그
소리를 재생하기 위해서는 스크립트에서 GetComponent<AudioSource>().Play();를 적어줘야 한다.
'2-1 > 모바일 게임 개발' 카테고리의 다른 글
모바일 게임 개발 10주차 정리 (0) | 2023.05.10 |
---|---|
모바일 게임 개발 9주차 정리 (0) | 2023.05.03 |
모바일 게임 개발 7주차 정리 (0) | 2023.04.19 |
모바일 게임 개발 6주차 정리 (0) | 2023.04.12 |
모바일 게임 개발 5주차 정리 (0) | 2023.04.05 |