
weekly 학습 키워드
이번 주는 기초 강의를 학습한만큼 Unity와 C# 전반적인 용어와 인터페이스, 기능에 대해 많이 배웠다.
C# 코드블럭은 TIL 페이지에서 직접 복습하는 것이 편해
WIL에는 Unity 기능, C# 함수 복습에 대해 적어보고자 한다.
Unity 기능 복습
1. rigidbody : 요소를 위에서 아래로 떨어지게 만든다.
2. collider : 다른 요소와 만나면 충돌시킨다.
3. target graphic : 특정 상황에서 해당 요소의 그래픽에 변화를 주겠다.
4. Unity 내에서 같은 스크립트를 공유하는 여러 개의 요소를 다루는 방법
같은 스크립트를 공유하는 요소들의 경우 해당 스크립트에 public int type; 을 선언하고
Unity의 prefabs 에 있는 Type 기능을 활용한다.
5. Canvas 설정할 때 render mode를 world space로 바꿔주는 이유
UI 세상을 게임 세상으로 보내주기 위함
6. 상위 요소가 하위 요소에게 명령하는 방법
transform.Find 함수를 활용하면 하위 폴더에 있는 요소를 가져와서 명령을 내릴 수 있다
7. 다채로운 게임 만들기
: 같은 기능을 사용하더라도 UI가 잘 다듬어지고, 디자인이 좋은 요소를 사용하면 게임의 퀄리티가 높아진다.
난이도 설정 (요소의 양, 속도 등)과 같은 요소 수정 및 추가로 게임성을 개선하고 확장시킬 수 있다.
8. 음향 효과 집어넣기
: 재생할 음악과 재생할 컴포넌트 두 가지가 필요하다.
public AudioClip : 어떤 음악을 재생할 것인가?
public AudioSource : 누가 음악을 재생할 것인가?
9. Keystore
: 안드로이드에서 이 앱을 배포할 수 있는 권리이다.
Keystore 를 갖고 있지 않으면 앱을 배포할 수 없다!
10. 광고 붙이기
: adsManager를 만들고 싱글톤화 해서 관리하는 것이 편하다.
* 주의사항 *
게임을 만든 Unity 엔진의 버전과 Ads package 버전이 호환되는지 확인할 필요가 있다.
11. 하이퍼캐주얼 게임이란?
: 하이퍼캐주얼 게임의 주요 특징은 다음과 같다.
1) 세로 화면으로 플레이
2) 원 버튼 플레이 제공 (터치 또는 슬라이드)
3) 1라운드에 30~60초
하이퍼캐주얼 게임은 아이디어와 빠른 실행력이 있다면 만들 수 있다.
12. transfrom 이해하기
Unity에서 transform은 position, rotation, scale 로 구성되어 있으며 각각 x, y, z 로 이루어져 있다.
transform은 object의 위치에 대한 정보를 가지고 있다.
13. Unity_Scene에서 qwer 단축키 사용하기
q : scene 을 손 커서로 움직일 수 있다.
w : position 수정 화면으로 변경
e : rotation 수정 화면으로 변경
r : scale 수정 화면으로 변경
14. parents 와 child 이해하기
Unity의 Hierarchy에 있는 폴더의 경우
상위 폴더가 parents
하위 폴더가 child가 된다.
15. 위치 개념 이해하기
Unity에서 위치는 2가지가 있다.
1) Inspector 창에서 위치는 position 값의 x, y, z 를 의미한다.
2) Hierarchy 창에서 위치는 폴더 간의 위치로, parents-child 관계를 의미한다.
16. Unity의 세계관은 2개
1) 2D : screen = UI 의 영역으로, UI를 선택하면 Rect Transform이 뜬다.
2) 3D : world = game object의 영역으로, object 선택 시 Inspector에 바로 Transform이 뜬다.
17. UI의 Render Mode 3가지
1) overlay : 모든 레이어를 over하여 표현
2) camera : UI를 카메라로 찍듯이 표현, 그 대신 레이어 순서를 바꿀 수 있음 (order in layer 사용)
3) world space : UI를 3D 공간에서 나타날 수 있게 함. 주로 HP바, 닉네임 등에 사용
C# 함수 복습
1. public : 여러 곳에서 부를 수 있는 존재를 선언할 때 사용한다.
ex) public static gameManager I; 의 뜻 : 여러 곳에서 부를 수 있는 게임매니저 I 라는 것이 있다.
(주의) gameManager를 싱글톤화 하지 않으면 viod Awake 했을 때마다 새로운 gameManager가 등장할 것
2. 마우스 포지션 잡는 법
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
3. int / int
C#에서는 정수와 정수를 나누면 무조건 정수로 표시된다.
정확한 값, 또는 근사치의 소숫값이 필요하다면 float 변환 함수를 적용시키자.
4. string firstCardImage = firstCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite.name;
해석 ) firstCardImage란, firstCard의 front의 SpriteRenderer에 있는 name을 의미한다.
튜터님들의 꿀팁 모음집
1. GitHub 에서 문서를 안전하게 동기화 및 전달하는 방법
fetch origin - pull - push 순으로 누르는 것이 제일 안전하다.
2. 개발자의 숫자는 0부터 시작한다!!! (그런데 "첫 번째".. 같은 표현에서 혼란이 생기는 듯하다)
3. 문자보다 숫자의 연산이 훨씬 빠르다! 가능하면 숫자로 바꿔보자.
4. 코드가 한 번 손에 익으면 그것만 사용하는 경우가 많아지므로
다른 개발자들의 코드를 보면서 여러가지 코드에 대한 이해를 쌓는 것도 중요하다!
이 주의 회고
스파르타코딩클럽의 게임개발종합반 강의를 모두 수강했다.
처음 보는 용어와 Unity, GitHub 등을 익히느라 어려움이 있었지만
초심자의 끈기로 시간박치기 한 덕분에 완주할 수 있었다.
강의를 따라 [르탄이 카드게임]을 처음 완성했을 때는 정말 뿌듯했다.
과제 제출기간보다 하루 일찍 완성해서 내 스타일대로 수정해 완성하고 싶다는 욕심이 생겼다.
카드 디자인, 배경음악 등 외부적인 요소를 먼저 변경하고
코드수정이 필요한 부분 (게임 내 시간 흘러가게 하기, 틀렸을 때 나오는 효과음, 시간 색상 변화시키기)은 코드 수정으로 마무리했다.
어려운 내용은 팀원들과 공유하기도 하고, 튜터님께 직접 가서 여쭤보며 풀어내니 재미있었다.
배운 내용을 복습하면서 코드를 직접 활용할 수 있게 되니 흥미가 붙었다.
캠프가 끝날 때까지 꾸준히 지금의 열정을 잃지 않았으면 좋겠다!
다음 주 C# 문법 강의도 힘내서 잘 따라가자!

'게임 개발 일지 > 내일배움캠프 WIL' 카테고리의 다른 글
객체지향 SOLID 원칙 / git commit (0) | 2023.11.26 |
---|---|
캐릭터 방향 바꾸기 / Random.Range 사용하기 (0) | 2023.10.30 |
댓글