UI
Button
버튼을 생성하면 자동적으로 Text도 자동적으로 생성됨,
2D 애니메이션
stiripes : Unity 프로젝트의 Asset 타입 중 하나, 2D 그래픽 오브젝트
stirpes로 애니메이션을 만들고 싶다면, 여러 stripes를 순서대로 드래그해 scene 상에 붙여넣으면 됨
아래와 같은 방식으로 표현됨.
카메라
카메라의 Projection
- Perspective : 3D 화면상의 공간감, 원근감을표현
- Orthographic: 원근법 적용 x, z축 상 거리에 상관없이 크기가 일정
카메라는 기본적으로 음수값을 바라보기 때문에, 적절한 음수값 (보통 -10)을 넣어주어야 물체들을 카메라 안에 담을 수 있다.
- Order in Layer: 낮은 숫자가 먼저 렌더링되고 숫자가 커질수록 늦게 렌더링됨(숫자가 높을수록 가려지지않음)
- Sorting Layer : 위와 비슷한 기능을 함, 뒤로 세팅하면 화면에 맨 앞에 위치
이 설정들은 position 상의 z축 값보다 우선함.
우리는 2D게임을 만들 것이므로 Orthographic로 표현함
참고 : https://docs.unity3d.com/kr/2022.3/Manual/class-Camera.html
Camera 컴포넌트 - Unity 매뉴얼
카메라 는 월드를 캡처하여 플레이어에게 보여주는 장치입니다. 카메라를 커스터마이즈 및 조정하여 게임의 프레젠테이션을 독창적으로 만들 수 있습니다. 하나의 씬에 카메라를 원하는 만큼
docs.unity3d.com
작은 게임 만들기 Flappy bird
무한맵 만들기
코드를 자세히 설명해주시진 않음, 나중에 알아보기
*HLSL(쉐이더 코드가 적힌 언어) 에 접근하는 방법이 _(언더바)MainTex(이름)임
![]() |
![]() |
원래 material은 수정이 불가능하기 때문에 새롭게 만들어주고, Shader를 변경하고 이미지를 넣어준다.
새가 점프하게 만들기
- Rigidbody2D에 주의
- 3D 캐릭터 점프와 크게 다른 점은 없다.
- Private Rigidbody2D myRigid라는 변수를 만들었으면 선언해줘야한다.
이렇게 만들고 스페이스를 계속 누르면 순간적인 힘이 연속적으로 작용해 솟구쳐오른다. 속도 제한을 넣어줘야 한다.
Pipe 만들고, 충돌시 GAME OVER가 뜨게 하기
*2D는 Circle이, 3D는 Cube가 가장 경제적인 Collieder이다.
우선 게임 오버 창을 만들어준다.
![]() |
![]() |
위와 같은 방식으로 검정 화면에 이미지가 뜨게, 애니메이션도 추가해준다.
pipe가 계속해서 생성되게 하려면, 우선 배열을 알아야 한다.
모든 게임 화면 연결하기
더 필요한 코드(문법)들
배열과 리스트
변수는 public 타입[] 변수이름으로 선언한다.
- Array : 동일한 타입의 변수를 모아놓은 데이터 집합, 여기선 아파트 형식이다.
- List : 배열인 Array와 흡사하지만 조금 더 동적이다, 수정이 쉽다.
배열과 같은 내용은 따로 더 공부할 것. 오늘은 너무 빠르게 지나감
수정이 불가한 Array와 수정이 가능한 List는 목적에 따라 다르게 사용된다.
배열 안에 아무것도 들어가 있지 않는 상태는 Null이다. 0도 값이다.
*이제는 Unity 상에서도 배열을 수정할 수 있게 되었다. 나이스 ~
Indexer
첫번째 칸이 무조건 0부터 시작.
접근 방법
Null
Pipe 만들기
Flip 기능을 이용해 뒤집어주고, 알맞은 위치를 잡아주고 하나의 그룹으로 만들어준다. 4개를 만들어주고
일정한 간격으로 위치시킨다.
Pipe가 일정하게 나오면 재미 없으므로 Pipe의 위치를 랜덤하게, 그리고 4개를 계속해서 재활용해서 반복되게 한다.
랜덤한 수를 갖는 ranInt를 설정하고, 형변환을 통해 pipeType이라는 변수명을 갖는, TOP,BOTOM,ALL 인 세 가지 경우가 있는 변수를 설정한다. 그리고 각각의 경우 위, 아래 ,모두 파이프가 나오게 설정한다.
*주의
위치값은 특정 축 1개만 불러와서 바꿀 수 없다. (읽는 것은 가능하다)
그리고 특정 위치(게임 뷰에서 왼쪽 화면 좌표)로 넘어갔을 때에 위치를 옮겨준다.(게임 뷰에서 오른쪽 끝으로)
다른 방식으로 쓸 것이기 때문에 간단히 본다.
반복문
- while : 조건식이 참일 경우에 계속해서 반복하는 반복문
- for : 정해진 횟수만큼 반복하는 반복문
- foreach : 배열이나 리스트를 뽑아서 반복하는 반복문
- break는 반복문을 깨 부수는 개념
*반복문은 따로 또 공부할것.
반복문을 이용해서 게임 업그레이드
위의 길었던 함수를 foreach 반복문을 사용해서 간단하게 줄였다. (파이프를 재사용하는 기능)
사운드 넣기
사운드는 스피커, 리스너. 음원 세 가지가 필요하다.
스피커 : 볼륨 표시
음원 : 음표 모양
리스너: 헤드셋 모양, 카메라에 무조건 있다.
*루프가 일어나는 사운드와 그렇지 않은 사운드를 구분한다
*사운드가 겹치는건 걱정할 필요 없다. 스피커는 하나라 알아서 꺼진다.
Hierachy 창에서 위와 같은 방법을 통해 Sound Manger라고 이름지을 오브젝트를 만든다.
스크립트를 붙여 넣고 각각 소리를 관리할 기능 함수를 만든다
PlayOneShot은 한 번만 사운드가 난다.
UI는 켜질때 자동으로 사운드가 나게 하면 되지만, 점프나 Collision 사운드는 함수에 넣어준다.
추가적으로..
타이머나 코루틴은 이해를 아직 잘 못해서, 사진만 첨부해두고 일요일즈음 다시 공부할 예정,
Retry버튼도 챗GPT의 도움을 받아 어느정도 완성했으나, 배열에 관련된 이해가 아직 부족함
더해서 Offset과 형변환(캐스팅)에 관련된 이해도 필요해 보임.
'TIL' 카테고리의 다른 글
[멋쟁이사자처럼 부트캠프 TIL 회고] Unity 게임개발 3기 14일차 (0) | 2024.12.02 |
---|---|
[멋쟁이사자처럼 부트캠프 TIL회고] Unity 게임개발 3기 13일차 (0) | 2024.12.02 |
[멋쟁이사자처럼 부트캠프 TIL 회고] Unity 게임개발 3기 10일차 (0) | 2024.11.28 |
[멋쟁이사자처럼부트캠프 TIL회고] Unity 게임개발 3기 9일차 (0) | 2024.11.27 |
[멋쟁이사자처럼 부트캠프 TIL회고] Unity 게임개발 3기 8일차 (0) | 2024.11.26 |