본문 바로가기

Unity/Unity3D

Unity - Rall and Ball project(2)

1. 카메라 조정

(1)- maincamera와 Player 오브젝트의 위치를 적당히 조절

(2)- 카메라와 Player 오브젝트의 위치가 같도록 Maincamera 스크립트 작성 

*카메라와 UI등은 LateUpdate 생명주기에 작성

(3)-카메라와 Player오브젝트가 일정거리 떨어진 상태를 유지하도록 스크립트 작성

 

2.씬구성

 

(0) Finish 오브젝트 생성 - 예시에서는 컨테이너박스 안에 투명한 원기둥 모양으로 생성

(1) GameManiger오브젝트 생성 - 우클릭 - creat - EmptyObject로 오브젝트를 생성해서 GameManiger로 이름 및 tag이름 변경

*EmptyObject = 형태가 없고 전반적인 로직을 가진 오브젝트를 매니저로 지정

(2) GameManiger 오브젝트에 GameManigerScript라는 스크립트 삽입

(3) 스크립트에 int ItemCounting으로 변수를 선언하고 public을 추가하여 스크립트 외부에서 변수할당 가능

(4) ItemCounting을 4로 할당

(5) Player 스크립트로 돌아와서  Player가 아이템을 다 먹고 Finish 오브젝트와 충돌했을때의 이벤트코드(OnTriggerEnter)작성

 

먼저 Player 스크립트 안으로 GameManiger의 스크립트안에 있는 변수 ItemCounting을 가져와야한다

방법1- Find활용(Find계열 함수는 CPU 부하가능성이 있어 되도록 사용 안함)

 

방법2- Player 스크립트에서 Public으로 GameManiger 오브젝트 안의 스크립트를 가져오기(* 이 방법 채택)

 

 

 

 

 

3. 장면 구성

(1) 기존의 씬이름을 RollAndBall1-0으로 Rename한 후 유니티엔진 상단의 File - New scene에서 새로운 씬 생성

 - 바로 FIie - Save로 생성된 비어있는 씬을 RollAndBall1-1로 저장

(2)Player 스크립트 상단에 using UnityEngine.SceneManagement;를 추가하여 씬관리 라이브러리를 불러오고

아이템을 다 먹었을시엔 RollAndBall1-1 씬으로 이동
아이템을 다 못먹었을시 RollAndBall1-0 씬으로 이동 하도록 코드작성

(3)File - Bulid Settings에서 두 개의 씬을 추가해주어야 오류가 발생하지 않음 이 후 창닫기 

 

 

(4) 아이템을 다 먹으면 다음 스테이지로, 못먹으면 현재 스테이지에서 재시작하도록 구성

 

방법 1 - GameManiger 오브젝트에 stage 변수를 선언하여 유동적인 Player의 LoadScene코드를 변수활용하여 리펙토링

방법2 - 각각의 씬은 순서에 따라 int값으로 설정되어 있다 따라서 

LoadScene("씬이름") 을 LoadScene(int)로 바꾸어도 된다.

*GameManigerScript의 stage는 각각 씬마다 유니티 엔진내에서 int값을 0, 1, 2로 이미 설정해놈

 

 

 

4.떨어졌을때 재시작하기 구현

 

GameManiger에 Box collider 컴포넌트를 생성하고 크기를 넓게 늘린 후 

onTriggerEnter() 충돌이벤트 함수를 이용해서 구현

'Unity > Unity3D' 카테고리의 다른 글

Unity-카메라시점변환  (0) 2020.11.08
Unity - Rall and Ball project(3)  (0) 2020.11.06
Unity - Rall and Ball project(1)  (0) 2020.11.05
Unity- UI 기초  (0) 2020.10.31
Unity - 물리충돌이벤트  (0) 2020.10.28