본문 바로가기
게임 개발 일지/내일배움캠프 WIL

C#, Unity 기능 복습

by 빛하_ 2023. 11. 5.

 

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# 문법 강의도 힘내서 잘 따라가자!

 

 

 

 

 

 

 

댓글