Unity (66) 썸네일형 리스트형 ⑤ 고양이 만들기 - 중력, HP바 고양이가 내려오는 로직을 만들어 보자 0.05배를 곱해주었음에 불구하고 속도가 빠르다면 프레임값을 고정시켜 주자 충돌을 구현하기 위해 Collider 2D 컴퍼넌트를 추가 및 영역 설정 Food에 콜리져와 리지드바디 추가 중력의 영향을 받지 않게 하기위해서 Body Type을 Kinematic으로 수정 단, 이렇게 했을 경우에 Oncollision 로직이 작동하지 않을 수 있으므로 Is Trigger를 체크해 준다. Normal Cat도 Food와 동일하게 적용 충돌 판단 여부에 대한 스크립트를 작성해 보자 키네마틱을 사용하기 때문에 Oncollision은 불가능 하므로 Ontrigger를 사용 그리고 Hungry 안에 있는 Front의 Rect Transform 값을 조정해야 한다는 것을 인지 조건문을.. ④ 고양이 만들기 - 일반냥, 뚱냥 하이어라키창 - 오른쪽 클릭 - Creat Empty 포만감을 측정하기 위한 HP바를 생성 이제 캔버스의 Y값을 -4를 해보자 Back을 복붙해서 Front를 생성 Scale의 X값을 움직였을 때 Scale 값을 0으로 해놓은 뒤, 먹이를 받아먹을 때마다 이 Scale 값을 조금씩 늘리면 된다. 애니메이션을 만들어 보자 일반냥의 헝그리에다가 드래그 앤 드롭 만들어 놓은 일반냥을 프리팹 시킨 후 뚱냥을 만들어 보자 ③ 강아지 만들기 - 밥 쏘기 MainScene으로 이동해서 강아지가 배고픈 고양이들에게 주는 밥을 만들어 보자 고양이들에게 밥을 쏘는 로직을 작성해 보자 포지션 각각에 접근해서 바꿔주는게 불가능 하므로 포지션 자체에 더해줘야 한다. 1씩 이동하면 속도가 매우 빠르므로 0.5를 곱해주자 이제 강아지를 기준으로하여 반복적으로 생성해주는 로직인 InvokRepeating을 활용해야 한다. Dog script를 생성한다. 정확히 어떤 위치에서 생성해야 할지 정해 주자 Food를 프리팹시키자 강아지 위치에서 반복적으로 잘 생성이 되는지 확인해 보자 강아지 정중앙에서 생성되는 것 같으므로 y값을 2 정도 더해준다. 이제 강아지의 x값만 마우스로 제어하는 기능을 추가해 보자 강아지가 화면 밖으로 나가지 않도록 X값의 범위를 제어해야 한다. x값.. ② 오프닝 만들기 StartScene으로 들어가서 메인씬과 동일하게 카메라의 사이즈를 25로 맞춰준다. 오프닝 배경화면을 만들어 주자 오프닝에서 MainScene으로 전환해주는 UI 버튼을 만들어 보자 이제 버튼을 눌렀을 때 전환이 가능하도록 하는 로직을 작성해야 한다. 활성화 여부를 확인해 보자 ① 기본 씬 구성 레이아웃 2 by 3 게임 씬 Phone Label 760x1280 프로젝트 창 One Column Layout 카메라가 촬영하는 범위를 5에서 25로 늘려준다. 기존에 해왔던 배경화면 게임 오브젝트를 생성하는 것이 아닌 카메라 백그라운드를 사용해보자 디자이너에게 제공 받은 이미지를 사용해본다 가정하고 제작해보자 생선가게와 생선가게를 지키는 강아지를 만들어 보자 Darksaver2 완성 복습한다는 느낌으로 만든 프로젝트 첫 번째 프로젝트에서 다뤘던 기술들과 거의 유사하기 때문에 새롭게 추가된 기능만 살펴보겠다. ⓐ 마우스로 제어하기 화면 스크린상에 떠돌아다니는 마우스의 위치와 메인카메라가 찍고 있는 게임 월드 상의 위치를 같게 해준다는 코드 ⓑ 싱글톤 복습 ⓒ 소수점 오차 방지를 위한 정교한 점수 작업 ⓓ 최고 점수 나타내기 대소문자의 혼동으로 실수가 나올 수 있으므로 ⓔ 애니메이션 업데이트 사망했을 때 연출을 위함 애니메이션 PrincessIdle 더블클릭 및 게임오브젝트 Princess 클릭 이제 GameManagerScript에서 애니메이션을 바꿔주는 로직을 입력해 준다 Timescale을 정확히 0으로 해놓으면 작동하지 않으므로 딜레이를 추가해야 한다. ⑨ Darksaver1 완성 경험치 표 더보기 [미니] 붉늑 1 exp 푸늑 2 exp 주늑 3 exp [일반] 붉늑 1.5 exp 푸늑 2.5 exp 주늑 3.5 exp [대형] 붉늑 2.0 exp 푸늑 3.0 exp 주늑 4.0 exp 빨간 빗방울 -5.0 exp ⑧ 타이머 설정 및 게임 끝내기 60초에서 0초로 감소하도록 시간이 흐르는 로직을 구성할 것이다. 우선은 게임이 끝났을 때 나타나는 UI를 생성해 보자 텍스트에서 Alt+Shift 누른 상태로 오른쪽 하단 다음과 같이 세팅하였다. 게임이 끝날때 나오도록 체크를 해제한다 GameManager Script로 들어가서 시간을 감속시켜주는 타이머기능을 만들어 보자 변수 totalTime 생성 deltaTime은 모든 기기에서 동일한 속도를 낼수 있도록 하기 위함 60초 라는 전체 시간에서 deltaTime을 지속적으로 빼도록 하였다. 시간이 흐르는지 확인해 보자 소수점 둘째자리까지만 표기하도록 해보자 이제 남은 시간이 0이 되었을 때 멈춘 뒤, EndPanel이 나오도록 설정해야 한다. Time의 크기를 0으로 만들어주는 것으로 첫번째 프레임.. ⑦ 점수 올라가게 하기 점수는 UI를 통해서 보여지게 할 것이다. UI는 Canvas라는 도화지 위에 그려지고, 카메라 위치와는 관계 없이 보여준다. 일반적으로 버튼, 랭킹, 텍스트와 같은 정보들을 보여줄 때 사용한다. 폰트 다운로드 링크 다운 받은 폰트를 Assets 폴더안에 넣어준다. UI를 생성하기 위해서 하이어라키창 오른쪽 클릭 - UI - Legacy - Text UI를 다음과 같이 셋팅하자 복붙하여 총 4개를 생성 이제 캐릭터와 몬스터가 충돌 했을 때 점수를 올려주고, 그 점수를 UI에 표시해주면 될 것이다. GameManager script 에서 작성하면 된다. 싱글톤 = 나 하나 밖에 없고 여러 스크립트에 접근이 가능하도록 함 점수를 올려주는 기능을 만들어 보자 함수 앞에 Public을 붙이는 이유는 외부 스크립.. ⑥ 몬스터 구현하기 - 반복 생성 로직 만들어 놓은 몬스터를 반복적으로 생성할 수 있도록 하자 하이어라키 창 오른쪽 클릭 - Create Empty 이름을 GameManager으로 명명하고, 스크립트도 하나 생성 게임의 전반적인 진행을 위한 스크립트이며 이것을 게임 오브젝트 컴퍼넌트 안에 넣는다. 하나의 준비 작업이 더 필요하다. 몬스터 게임 오브젝트들을 프리팹화 시키는 것 프리팹은 일종의 붕어빵 틀 이 프리팹을 생성하기 위해서 Assets 안에 폴더를 생성 몬스터 게임 오브젝트들을 프리팹 폴더안에 넣는다 GameManager script에서 반복적으로 몬스터를 생성해주는 코드를 작성하면 될 것이다. 여기서 instantiate는 게임오브젝트를 생성시키는 함수이고 Monster는 프리팹 InvokeReapting은 함수를 반복적으로 실행시켜주.. ⑤ 몬스터 구현하기 - 랜덤 몬스터 ⓐ 3 종류의 몬스터를 생성 ⓑ 랜덤한 위치에서 몬스터가 떨어짐 ⓒ 각 종류마다 랜덤한 크기의 몬스터를 생성 ⓒ 각각의 몬스터마다 점수를 다르게 셋팅 몬스터가 리젠되는 범위부터 생각해 보자 이제 Start 함수에서 랜덤한 위치에 몬스터가 생성되는 코드를 입력해 주자 우선은 사이즈의 기본값을 1이라 하고 점수값을 1로 변수 설정 랜덤한 사이즈 값을 정수로 하기위해 자료형 int를 사용 변수 이름은 type으로 설정 3가지 크기로 만들 것이므로 타입은 3개를 만들어야 한다. 해당 스크립트는 Redwolf의 스크립트이다. 타입1 은 기존의 0.7배 크기로 하였고 점수는 1점 타입2 은 기존의 1.0배 크기로 하였고 점수는 1.5점 타입3 은 기존의 1.2배 크기로 하였고 점수는 2점 이 것들을 트랜스폼 로컬스.. 이전 1 2 3 4 5 6 다음