유니트 게임개발 기초
- 코딩/게임개발
- 2022. 11. 28.
유니티 기본화면
scene : 실제 게임의 구성요소를 보는 곳. 실질적인 게임 개발 씬
game : 게임이 실제로 보여지는 곳. play 버튼 클릭 후 볼 수 있음
Hierachy : 게임 내 구성요소를 볼 수 있는 곳. 개발시 자주 필요
Project : 이 프로젝트에 포함된 파일들을 모아볼 수 있는 곳
Inspector : 클릭한 요소의 속성과 정보를 보여주는 곳
빗물받는 게임
1. 기본세팅
⊙ Window → Layouts → 2 by 3
⊙ Project → 점3개 → One Column Layout
⊙ Game → Free Aspect ▼ → Phone 760x1280(모바일 크기) 생성 후 선택
2. 배경 세팅하기
⊙ project에서 Scenes → MainScene로 변경
⊙ Hierarchy 에서 MainScene 우클릭 → 2D Object → sprite → Square 클릭 → background 이름 변경
⊙ 배경색 255.255.220.255
⊙ 배경 크기 변경
background 선택 후 Scale 사이즈 X :6, Y:10
3. 점수박스 세팅
⊙ Hierarchy 에서 MainScene 우클릭 → 2D Object → sprite → Square 클릭 → ground 이름 변경
⊙ 색상 50,50,50,255
⊙ Scale 사이즈 X :6, Y:1.5 / Position Y:-4.3 (아래 고정)
⊙ inspector 창에서 Additional Settings 밑에 Order in Lyer "1"로 설정
4. 이미지 가져오기
⊙ Project 에서 Assets 선택 우클릭 → Create → Folder → images 이름 변경
⊙ 이미지 파일을 생성한 images 폴더로 끌어다 놓기
⊙ 2D Object → sprite → Square 클릭 → rtan 이름 변경
⊙ 이미지를 화면에 보여주기 위해 Inspector 에서 Sprite 부분에 이미지 끌어다 놓기
⊙ Order in Lyer "1"로 설정
⊙ Position Y:-2.9 (X는 왔다갔다 움직임 코드 넣어야함)
5. 애니메이션 만들기
⊙ Project 에서 Assets 선택 우클릭 → Create → Folder → Animation 이름 변경
⊙ Animation 폴더 선택 우클릭 → Create → Animation → rtan_run으로 이름변경
계속 반복적으로 실행해야 하기 때문에 Loop Time 체크박스 선택
⊙ 애니메이션 생성한 rtan_run을 → 실행할 주체인 2d 오브젝트 생성한 rtan에 끌어다 놓는다
(그러면 rtan을 선택해보면 Inspector창에 Animator 항목이 보인다.)
⊙ 애니메이션을 만들기 위해 rtan_run을 더블클릭 한다.
⊙ 애니메이션 창에 움직일 이미지(images 폴더에 있는 이미지)를 차례로 원하는 간격을 두고 끌어다 놓는다.
⊙ 상단에 재생버튼을 눌러 애니메이션을 확인해 본다.
6. 캐릭터 애니메이션 (C# Script) 코드 넣기
⊙ Project 에서 Assets 선택 우클릭 → Create → Folder → Script 이름 변경
⊙ Script폴더 선택 우클릭 → Create → C# Script → rtan 이름 변경
⊙ C# Script 생성한 rtan을 더블클릭 하면 프로그램창 실행
⊙ 코드 넣고 ctrl+s로 저장
⊙ rtan C# 스크립트를 → rtan오브젝트에 끌어다 부여해준다.
(캐릭터가 움직이면서 마우스를 클릭하면 방향전환)
⊙ 재생버튼으로 확인해보기
6. 빗방울 애니메이션
⊙ MainScene 우클릭 → 2D Object → sprite → Circle 클릭 → rain 이름 변경
⊙ 색상 150,150,255,255
⊙ Order in Lyer "1"로 설정
⊙ Position Y: 4
⊙ 빗방울에 질량이 있게 세팅하기
rain오브젝트 선택 → Inspector창에 Add Component 클릭 → Rigidbody 2D 선택
(Gravity Scale 의 수치를 조정하면 얼마나 빨리 떨어질지 조정)
7. 빗방울 (콜라이더라는 속성을 각요소에 먹여주기)
⊙ rain오브젝트 선택 → Add Component 클릭 → Circle collider 2d 선택
⊙ ground 오브젝트 선택 → Add Component 클릭 → Box collider 2d 선택
⊙ 재생버튼을 누르면 빗방울이 땅에 닿으면 멈춘다.
8. 빗방울 땅에 닿으면 없어지기
⊙ 땅에 닿으면 빗방울이 없어져야 하기 때문에 땅인지 알수 있게 태그를 달아줘야 한다.
ground 오브젝트를 선택하고 → Inspector창에 → Untagged를 Add Tag로 선택 →
List is Empty 밑에 "+" 버튼을눌러서 ground로 저장해준다.
⊙ 다시 ground 오브젝트를 선택하고 → Inspector창에 → Untagged란에 방금만든 ground 태그를 넣어준다.
(이유: 즉 ground라는 오브젝트 친구는 ground라는 이름표를 달도다니는것으로 생각)
⊙ Script폴더 선택 우클릭 → Create → C# Script → rain 이름 변경 → 더블클릭해서 창을 연다.
⊙ 유니티에는 자동으로 함수를 지원해주는 것들이 많은데
OnCollisionEnter2D라는 함수는 어떤 collision값을 가지고 있는 오브젝트가
다른 collision 값을 가지고 있는 오브젝트랑 부딪혔을때 이함수가 무조건 실행되게 할 수 있다.
(즉, 두 콜라이더가 부딪혔을때 위의 함수에 입력값에는 나와 부딪힌 상대방이 들어온다.)
ex) void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "ground") // 나와 부딪힌 상대 오브젝트 태그가 ground면
{
Debug.Log("땅이다!"); // 땅이다
}
}
⊙ rain 스크립트를 rain 오브젝트에