![레벨업🥳시스템 [유니티 뱀서라이크 12] 대표 이미지](https://i.ytimg.com/vi_webp/eo8bLO7kHVo/maxresdefault.webp)
레벨업🥳시스템 [유니티 뱀서라이크 12]
요약
Unity를 사용하여 뱀서라이크 게임의 레벨업 UI 시스템을 구현하는 튜토리얼입니다. Canvas, Image, Panel, Text를 활용하여 레벨업 시 나타나는 팝업 창과 아이템 선택 레이아웃을 구성하는 방법을 설명합니다.
핵심 포인트
- Canvas와 Image를 활용한 배경 레이어 구성 방법
- Panel과 Legacy Text를 이용한 레벨업 타이틀 UI 제작
- Vertical Layout Group의 Control Size와 Spacing 옵션 활용법
- UI 요소 간의 여백(Padding) 및 정렬 최적화
Video: 레벨업🥳시스템 [유니티 뱀서라이크 12]
Channel: Goldmetal
Duration: 44m 29s
Source: subtitle (auto, ko)
Transcript:
[음악] 저와 여러분들 반갑습니다 골드부터입니다 자 지난 시간에는 뱀소라이크의 핵심이었던 업그레이드 자 만들어 보았죠 근데 요거는 어디까지나 기능만 만들어 본 거고요 실제로 우리가 이제 게임을 했을 때 레벨업 할 때요 이렇게 창이 따단 나오는 거 자 그런 시스템을 이제 만들어 볼 겁니다 먼저 ui부터 필요할 것 같은데요 그래서 캔버스에 가셔서 우클릭하신 뒤에 ui에서 이미지 하나 만들어 봅시다 자요 이미지는요 창을 좀 더 돋보이게 하기 위해서이 바탕을 깔아주는 역할인데요 그래서 전체 크기를 할 것 같습니다 앵커 눌러주고요 shift alt하셔가지고 자 가장 꽉찬 크기 선택해주면 되겠습니다 색깔도 바꿔야죠 색깔은 검은색을 할 겁니다 그리고 어느 정도 뒷배경도 보여주면 좋으니까요 150 정도 알파 값을 살짝 낮추겠습니다 되셨나요 좋습니다 그리고 여기에 이름이 레벨업이 되는 거고요 그럼 기준이 있었던이 레벨업은요 얘는 이제 아이템 그룹이 되는 것이죠 창을 만들어 보도록 합시다 레벨업에서 다시 우클릭 ui에서 이미지 하나 만들어 볼 이미지는요 당연히 제가 여러분께 적응해 드리는 판넬 자 도트 이미지로 선택을 합시다 자 폭과 높이는 이거는 뭐 제 기준에서 적상한 건데요 폭은 벽이고 높이는 130 이렇게 할 겁니다 색깔도 여기서 언데드와 약간 잘 어울리는 색깔 뭐 한 요런 느낌이면 좋을 것 같은데요 제가 준비한 색깔은 레드는 사실 그리는 145 블루는 112 정도 이렇게 한번 해보았습니다 이 창의 이름이 이제 판넬이 되는 그럼 2000이 뭔가 타이틀 필요하지 않겠습니까 우클릭하셔서 ui에서 레거시 텍스트 하나 해보겠습니다 크기 넣어 줄게요 앵커 누르시고 쉬프트 알트하시면서 위쪽 방향으로 양옆에 꽉찬 앵커 놓아주시고요 얼레몬트 정중앙 그리고 이거 한가운데 이렇게 하겠습니다 높이는 20으로 해주세요 한 요정도 폰트도 제가 정리해드렸던 네오 둥근 목걸로 바꿔 주시고요 포트 크기는 한 10 정도면 좋을 것 같아요 그런 다음에 색깔은 당연히 흰색으로 하면 이쁘게 잘 보이겠죠 그러면서 조금 익은 타이틀이니까 쉐도우라는 컴포넌트까지 같이 입혀주면 훨씬 더 멋있는 그런 텍스트됩니다 지금 이펙트 디스턴스가 1 마이너스 루트 했는데요 그만큼 이게 거리에 떨어진 겁니다 요거를 한 0.5로 바꿔 주셔서 그림자가 테스트에 약간 좀 딱 달라붙게네 그렇게 하시면은 되게 이쁘게 잘 나옵니다 확인됐으면요 텍스트를 한번 바꿔 볼게요 저는 축하합니다 레벨이 상승했습니다 이렇게 작성할 거고요 확을 하니까 보통 많이 크네요 조금만 넣어 드리겠습니다 팔정도 높이도 지금 20인데요 조금만 더 위쪽이 여백을 줘야 할 것 같네요 -3이 정도로 하도록 하겠습니다 이제 이렇게 타이틀 하나 완성 다이어트 먼저 했구요 자 이제 해야 할 거는요 저번에 만들었던이 아이템 그룹을 2차 안에다가 집어 넣는 것입니다 그래서 드래그 하셔서이 판넬에다가 놓아주시고요 위치하고 크기가 중요하거든요 그래서 여기 앵커 클릭하시고요 shift alt하시면서 가장 꽉 찬 화면으로 눌러 보시면 되겠습니다 자이 그룹의 크기는이 창만큼 커졌는데요 안에 있는 아이템 크기는 그대로죠 사실이 버티컬 레이어 그룹이 그 자식 오브젝트들 지금 보시면 아이템 5가지 있잖아요 얘네들의 크기를 자기 크기대로 이렇게 컨트롤 할 수 있는 옵션이 있습니다 그게 바로이 컨트롤 사이즈인데요 그래서 폭과 높이 각자 눌러 보시면은 자기 크기 안에 개수대로 일정하게 이렇게 사이즈를 나눠줍니다 게다가 보시면은이 차일드마다 지금 뭔가 여백이 하나도 없죠 그래서이 스페이싱 개별마다 여백을 줄 수 있습니다 1만 줄게요 뿅 이렇게 됐습니다 자 이게 너무 꽉 차 보이니까요 여백도 좀 많이 주면 좋을 것 같습니다 레프트 라이트는 각자 5 바닥도 근데 맨 위에 있는 지금 타이틀이 있죠이 녀석만큼은 25를 줘 가지고 타이틀을 잘 보이게 하도록 하겠습니다 되셨나요 좋습니다 근데 보시면은 우리가 만들었던 뭐이 버튼 안에 그 무기 아이콘도 있고 레벨도 있는데 지금 너무 뭔가 높이가 좀 모자라죠 걱정하십시오 어차피 우리는 레벨업 할 때 딱 아이템을 3개만 보여줄 겁니다 맨 아래 거 두 개를 살짝 비활성화 시켜보면요 알아서 이렇게 높이가 제 조정이 됩니다 언뜻 뭐 이쁜 모양이 된 거 같아요 그래서이 상태에서 제가 맨 첫 번째 아이템만 조금 더 이쁘게 재조정을 좀 해보도록 하겠습니다 자 아이템용 펼쳐 보시고요 지금 아이템이 지금 이렇게 돼 있는데 요거를 앵커 클릭하시고 shift alt 하시면서 바로 옆에 있는이 왼쪽 사이드 넣습니다 그거는 이제 레벨도 마찬가지예요 레벨도 똑같이 할 겁니다 근데 레벨도이 아이콘 크기와 똑같다라고 가정을 할 거니깐요 자 폭을 18로 잡아 주시고요 그런 다음에 앵커를 지프트 알트 하시면서 저 그림과 똑같이 왼편에다가 이렇게 뾱 붙이겠습니다 그러면 정확하게이 텍스트가이 아이콘 정중앙이 오게 되겠죠 좋습니다 자 아이폰은 약간 조금 위로 가게끔 하겠습니다 그래서 이건 포지션 x는 한 6 정도로 살짝 앱을 줄 거고요 포지션 y는 산동 눌러주겠습니다 테스트도 포지션 x는 똑같이 6 주시고요 포지션 y는 - 집중도로 하겠습니다 자 그럼 이쁘게 잘 나왔죠 그런 다음에 자이 텍스트 레벨을 하나 복사를 합니다이 텍스트는요 이름으로 쓸 겁니다 아이템의 이름 텍스트 네임이다 그래서 이름이기 때문에이 폰트 사이즈는 좀 더 커야 됩니다 7 정도 줄게요 자 그러면서 이제 여기 기준으로 이제 보실 겁니다 아 그렇기 때문에요이 글자 수는 이제 막 변할 수 있잖아요이 아이템마다 그래서이 얼라이언먼트는 중앙이 아니고 여기 왼쪽 기준입니다 왼쪽 기준으로 해주시고요 그러면서이 표준열을 26 정도 내지 27 정도로 하면은 되게 이쁘게 이렇게 나와요 됐죠 자 그다음 올릴게요 올리는 거는 6 정도로 하면은 좋겠네요 그래서 이름 바꿉시다 아이 템 이름 하면은 이렇게 이쁘게 나오겠죠 되셨죠 좋습니다 그럼 이렇게 하나시고요 완성되었으면 요걸 또 한번 컨트롤 d를 눌러 보시길 바랍니다 이거는 설명이에요 설명 desce 는 설명이기 때문에 포트 크기를 다시 5로 좀 짧게 줄이도록 하겠습니다 자 이제 요거는 두 줄이 들어갈 수도 있거든요 아이템 이름이 아니고 아이템 설명과 또 아이템 설명 이렇게 두 줄 넘을 겁니다 포지션 y를 내려보도록 해요 마이너스 7 정도로 하면은 되게 이쁘게 잘 붙을 것 같아요 테스트가 3개가 되었는데요 자 각자 좀 구분하기 위해서이 폰트 색깔을 좀 바꾸기로 했습니다 레벨 같은 경우에는 언데드 색깔 살짝 뭐 요렇게 주면 좋을 것 같고요 설명 같은 경우에도 레벨이랑은 약간 좀 색깔이 겹치지 않게 해주시면 좋을 것 같아요 어때요 괜찮죠 좋습니다 자 이렇게 해서 이제서야 정신적으로이 아이템 버튼 하나를 만들어 내었구요 원래 있었던 1번 2번 3번 4번 이제 얘네들은 필요 없죠 지우겠습니다 요거 요거 자 싹 다 지울 거고요 무리가 만들었던이 아이템 역을 다시 한번 컨트롤 디를 통해서 4번 복사합니다 하나 둘 셋 넷 이름 바꿔 주시고요 그러면서 잊지 말아야 할 거 제가 지금 0번째를 볼 수 있기 때문에 보시면 데이터도 아이템 영어로 되어 있죠 자신의 숫자 맞게 데이터 바꿔 주시는 거 잊지 마시길 바랍니다 되었죠 그 다음에 두 개만 살짝 한번 비활성화 해보시면 이렇게 이쁘게 모양이 만들어집니다 좋습니다 조정하시고요 고생하셨습니다 자 한번 테스트 해볼게요 일단은이 버튼이 잘 바뀌는지만 이렇게 확인되었네요 좋습니다 자 그래서 창을 한번 만들어 봤구요 이제 우리가 그 이름하고요 설명 텍스트 두 개를 더 붙이기 때문에 요거를 우리가 스크립트에서 한번 보완을 해 줘야겠죠 우리가 지난 시간에 아직 넣지 않았던 데이터만 했었는데요 데이터 폴드에서 스크립트 오브젝트를 선택하시면 아이템 설명란이 이렇게 비어 있을 그렇죠 자 이거를 이런 식으로 넣을 건데요 두 줄을 넣을 수 있게 해야 돼요 고거를 인스펙트에서도 충분히 할 수 있거든요 그렇다면 요거는 아이템 데이터 스크립트 먼저 들어가 봐야겠습니다 자 더블클릭해서 열어보시고요 퍼블릭 스트립 아이템 DSC 여기 바로 윗줄에다가 속성 자 대괄호 2개 넣어주시구요 여기에다가 텍스트 에리아라고 하나 작성해주시고 컨트롤 s로 저장을 하시기 바랍니다 잠깐만 다시 한번 돌아오면요 여기 인스펙터는 아이템 desc가 엄청나게 큰 칸으로 바뀐 걸 볼 수 있습니다 그래서 이제 몇 줄이고 넣을 수 있어요 저는 데미지 하고요 자 중괄호 열고 닫고 가운데에는 0이 들어갈 겁니다 이거는 나중에 제가 포맷의 매개변수를 쓸 겁니다 그 데이터가 바로이 데미지죠 제가 지금 첫 번째 데미지는 0.5죠 그럼 이제 50%인데 그래서 50% 증가 이렇게 할 겁니다 자 두 번째 줄에 있는 300 개수가 늘어나죠 회전체 이거는 자 이렇게 또 매개변수 하나 추가해주고요 증가 추가 이렇게 하면 되겠습니다 이런 식으로 다른 데이터도 계속 쭉쭉 넣어 보도록 하겠습니다 원글 무기도 데미지 자 프린트 증가 그 다음 회전체가 아니고 관통력 증가 이렇게만 살짝 해보겠습니다 자 다음엔 장갑이죠 장갑은 이벤트 변수이기 때문에 사실 한 줄만 넣어도 됩니다 연사 속도 0 해서요 퍼센테이지 자 이거 그대로 복사해서 전투장화 신발에는요 이동속도 증가죠 마지막 음료수는요 생명력 전체 회복 이렇게 설명을 작성을 하도록 하겠습니다 자 데이터는 넣었는데 그러면 우리가 요걸 실행하면은 이름과 설명이 여기에 초기화가 되어 있죠 그거는 누가이 아이템 스크립트가 담당합니다 자 아이템 스크립트 더블클릭해서 열어보도록 하겠습니다 제가 저번 시간에 굳이 구태여이 텍스트를이 텍스트 배열로 개콘 프론트 인출 드론으로 뽑아냈죠 그 이유가 사실 오늘을 위해서 있었던 겁니다 각자이 텍스트 두 개 더 추가할 하나는 텍스트 네임이고 하나는 텍스트 설명이죠 desg 그런 다음에 각자 초기화를 하도록 네임이 텍스트에 첫 번째 설명이 마지막 레벨의 0이고 네임이 1이고 설명이 2다 이거는 어떻게 알고 있나요라고 하시면은 인스펙터 상에서이 텍스트의 순서로 보시면 되겠습니다 레벨이 맨 첫 번째 있죠 그 다음 네임이 두 번째 설명이 세 번째 이거 순서대로 이렇게 했으니까요 참고하시길 바랍니다 그리고 자이 셋 중에서 처음에 살짝만 넣어주고 그 다음에 건드리지 않아도 되는 부분이 바로 이름이죠 그래서 테스트 네임 같은 경우에는 여기에서 바로 초기화를 해 주도록 하겠습니다 테스트 들어갈게요 어디에서 데이터에서 뽑아내야죠 아이템 네임입니다 좋습니다네 이렇게 한 줄 했고요 지금 레이트 업데이트에서 자 우리가 누를 때마다이 레벨이 올라가도록 이렇게 했었어요 자 이제 그럴 필요가 없습니다 그래서 이제이 버튼은 사라졌다가 나타났다가 할 거기 때문에 이벤트를 활용하면 되거든요 자 그것이 바로 어디냐고 하면은 온 먼저 치시고 그럼 이제 이벤트 다 나와요 거기서 어네이블 활성화 되었을 때 자동으로 실행되는 이벤트다 자 그래서 레벨 세팅을 여기에 살 겁니다 더 이상 레이트 업데이트는 필요가 없으니 깔끔하게 지워 주시고요 그래서 설명 놓을 건데요 텍스트 DSC 점 텍스트가이 설명 같은 경우에는 매개변수를 사용을 해서 우리가 가지고 있는이 데이터에 문자를 넣을 거잖아요 그래서 집들이 포맷이란 걸 제가 사용한다고 말씀드렸습니다 데이터에 아이템 DSC 넣을 건데 자 여기서 문제가 있습니다 하나만 넣는 것도 있고 두 개 넣는 거 있습니다 특히 두 개 같은 경우에는 이제 북이죠 그래서이 둘을 조금 가려내야 할 것 같아요 그래서 우리가 온 클릭해서이 스위치 했던 것처럼 그냥 그대로 해주시면 될 것 같습니다 그래서 무기 같은 경우에는 두 개가 들어가죠 브레이크 걸어 주시고요 첫 번째는 데이터 데미지 레벨에 따른 데미지가 되겠죠 두 번째는 비슷하게 카운트를 하면 되겠습니다 되었나요 자 좀 해 볼게요 글로브라든가 휴지라든가 이거 같은 경우에는 하나만 넣어 주시면 되고 나머지 기타 소비 아이템들로는 더 이상 필요 없기 때문에 디폴트로 하겠습니다 디폴트는 몇 개분수가 필요가 없습니다 자 이렇게 해주시면 되겠습니다 그리고 한가지 또 gr 사항이 있는데요이 백분율 이랬잖아요 근데 실제 데이터는 뭐 0.5 1.5 이렇게 되어 있잖아요 근데 보여줄 때는 거기에다가 50% 100% 150% 이렇게 보여 줘야 되기 때문에 여기 데이터에 100을 곱해줘야 됩니다 곱해 주시면 됩니다 되었죠 온 어네이블 자 함수가 적선이 완료가 되었네요 저장하시고요 요것만 살짝 테스트 해보겠습니다 이렇게 4번 데미지 50% 추가 회전차 한 개 추가 엽총은 데미지 35% 추가 건축용 1 추가 테크닉 장갑은 영상을 되었네요 좋습니다 자 요렇게 해서 초기화까지 완료가 되었네요 좋습니다 그 다음 페어가 이제 뭐냐고 하면은 바로이 창을 켜고 끄는 타이밍 바로 레벨 씀이죠 그래서이 창 컨트롤을 한번 만들어 볼 자이 창 컨트롤은 보잉과 안 보이고 할 건데요 그거는 레벨업에서 할 겁니다 그런데 창 컨트롤을 이렇게 비활성화 활동했다이 가시 아니고요 이번에는이 스킬 있죠 자 크기 자체를 이렇게 00 했다가 1 1 했다가 이렇게 한번 해 볼 겁니다 그래서 결국은 로직이 필요하거든요 그래서 새롭게 스크립트 하나를 작성을 해 볼 겁니다 그래서 자 코드 폴더에서 우클릭 한번 하시고요 create c# 스크립트 해서 레벨업이라고 하겠습니다 자 조금 기다려 보시고요 완료되었으면 더블클릭해서이 스크립트를 열어봅시다이 창에 스케일을 다루기 때문에요 ui는 트랜스포면이고 렉트 트랜스폼이죠 레트 트랜스폼을 가지고 옵시다 렉트라고 할게요 이거는 어웨이크에서 당연히 초기화를 할 겁니다 레트는 컴포넌트 따당따당 해주시고요 넥트 트랜스폼으로 가져와 주시길 업데이트는 줄게요 그래서 보이고 숨기고 하는 함수 2개를 만들어 볼 겁니다 퍼블릭 보이드 쇼 보여준다 자 이거 그대로 복사하셔서 하나는 하이드 숨길거다 만들었구요 쇼 같은 경우에는요 이 렉트에 로컬 스케일 을 벡터 3에 원 111 이렇게 만날 것입니다 하이드는 반대죠 로컬 스케일을 제로로 만들 겁니다 그러면이 쇼하고 하이드는 대체 누가 호출을 하느냐 그것이 문제입니다 일단 쇼 같은 경우에는 레벨업 할 때 보여주면 되니까 요거를 지금 관리하는 내가 누구죠 바로 게임 매니저죠 그래서 게임 매니저를 한번 가보겠습니다 게임 매니저 가셔서 더블클릭해서 열어 보시고요 게임 매니저에서 저 창을 필요로 해요 게임 오브젝트 자 카테고리 안에다가 퍼블릭을 하나 달아줍시다 퍼블릭 레벨 업 할 거고요 이름은 UI 여기서 살짝 조정하시고요 잊지 말고 지금 바로 초기화합시다 자 레벨업 창 가셔 가지고 애드 컴포넌트 하신 후에 방금 우리가 만들었던 레벨업 코드 넣어주시고 자 이거 그대로 게임 메뉴에서 방금 만들었던이 UI 레벨업 변수표 있죠 레벨업을 쏙 넣어주시면 돼요 자 초기화 완료되었구요 다시 게임 매니저 코드로 돌아와서 그럼 이제 저 쇼를 여기 레벨업하는 구간에다가 호출하면 되겠죠 UI 레벨 업 점 쇼 끝 자 그 다음엔 우리가 숨길 때는 언제 숨기는 거죠 바로 기능 업그레이드 버튼을 눌렀을 때 다시이 창은 들어가야겠죠 그래서 그거는 바로이 아이템 애들이 담당을 할 겁니다 자 보시면은 아이템 01234인데 요거 다 컨트롤을 눌러서 다중 선택하시고요 버튼 컴포넌트를 펼쳐 봅니다 온 클릭이 있을 거예요 이거 플러스 하나 추가해 보시죠 그런 다음에 여기 비어있는 데다가 레벨 업 쭉 들고 해서 넣어 주시고요 no function을 레벨업으로 가진 후에 보시면 하이드가 있습니다 자 하이드를 클릭하셔서 이렇게 다 선택을 해주시면 될 것 그러면은 다섯 개 모두 하이드가 잘 적용된 모습을 볼 수가 있습니다 절개 다 완성됐으니까 자 이제는요 레벨업 넘어가셔서요 레트 트랜스폼의이 스케일을 모두 0으로 바꿔 주시기 바랍니다 자 여기 올리실 부분이었죠 됐으면은 저장하시고요 세이브와 세이브레이크 하신 후에 자 한번 실행해 보겠습니다 자 이제 레벨업만 하면 되는데 아이고 맞네 여러분들 지금 우리가이 플레이어한테서 무기를 다 뺏었잖아요 사실 지금 무기 없기 때문에 아 이거 레벨 할 수 없게 됐네요 죄송합니다 그래서 일단은 먼저이 창을 컨트롤하기 전에이 플레이어한테 무기를 먼저 지어주는 것부터 좀 해야겠습니다 그걸 이제 기본 무기라고 하죠 자 그래서이 캐릭터한테 최소한 시작하자마자 근접 무게 하늘을 지워주려면 우리가 전선에 한 번씩 버튼을 만져봤겠지만요이 아이템 그룹의 무기 버튼만 한번 눌러주면 되거든요 그 알아서 지워지죠 자 그거를 스크립트에서 하면 돼요 한번 보겠습니다 자 레벨업 스크립트를 한번 넘어가 보도록 하죠 사실이 레벨업 스크립트 안에 아이템스들이 다 있는 거기 때문에요 여기 안에서도 충분히 가져올 수 있습니다 아이템 배열로 해서 아이템스라고 하죠 어웨이크에서 초기화를 하겠습니다 자식들한테 있는 컴포넌트이기 때문에요 컴포넌트인 칠드런 하고요 타입은 아이템이죠 비활성화된 애들도 지금 있기 때문에요 당연히 매개변수로 쭉까지 넣도록 하겠습니다 여기까지 뭐 계시죠 0번째 애를 선택을 해서 그걸 한번 눌러 줘라고 하는 함수를 여기에서 또 만들 겁니다 이번에도 퍼블릭으로 달아 보도록 하죠 퍼블릭 보이드 셀렉트 로 인트 인덱스를 박습니다 해서 아이템스에 받아온 인덱스 사용하고 운영 스크립트 때문에 바로 사용 가능하죠 뭐 됩니까 아이템에 있는이 온 클릭을 사용하시는 것이죠 자 이렇게 해서 저장하시고요 그럼 이러한이 셀렉트 함수를 게임 매니저 안에서 쓰면 좋을 것 같아요 이때는 지금 캐릭터 선택 창은 없기 때문에 스타트에서 그냥 바로 한번 해보겠습니다 이번에 임시입니다 임시 스크립트 레벨업에다가 셀렉트라는 함수를 0으로 넣도록 하겠습니다 컨트롤 s에서 저장하시고 되었으면 한번 실행을 해 보도록 하겠습니다 자 시작하자마자 바로 삽이 들려 있어야 되는데요 이쪽에 바로 플레이어가 초기 삽을 가지고 플레이하는 모습을 확인할 수 있네요 좋습니다 저는 아무 레벨 해 볼게요 레벨 했는데 어 잠깐만요 잠깐만 지금 레벨 했는데 아니 게임이 게임이 자꾸 돌아가는데 아니 레벨 할 때 고민할 시간 좀 주시지 아 이러면 안 되죠 아 안 됩니다 안 되기 때문에 자 이렇게 레벨업의 했을 때 시간은 정지 있게 해야 돼요 자 그걸 먼저 해야겠네요 이 시간에 대해서는 정말 중요한 요소이기 때문에 우리는 게임 매니지에서 관리를 한다고 했었죠 그래서 게임 매니저에 가셔서 여기에서 이제 시간을 좀 관리 좀 할 것입니다 그래서 지금이 시간이 지금 정지했는지 아닌지 그거를 판단하기 위해서이 게임 컨트롤 자 부근에다가 퍼블릭 불 이즈 라이브라는 새로운 변수를 하나 만들어 보도록 하겠습니다 그런 다음에 아래쪽에 내려가 주시고요 이 게임 매니저가 시간을 컨트롤하는 함수 그거를 가지고 있으면 좋을 것 스탑과 이걸 그대로 또 한번 복사를 해서 자 다시 돌리는요 두 개를 한번 만들어 보도록 스탁 같은 경우에는 이제 라이브가 당연히 펄스가 되겠죠 지금이 유니티에 진짜 실제 돌아가는이 시간에 크기를 확 줄여 보겠습니다 타임이라고 하는 클래스에서요 점 찍고요 타임스케일이라는게 있습니다 이거는 시간의 흐르는 속도의 크기를 보면 되겠는데요 기존 값은 1인데요 이거를 0으로 줄이면 진짜 시간이 멈추게 됩니다 신기하죠 그럼 반대로 자 이걸 리듬을 하게 되면은 라이브는 추루가 되고요 타임스케일은 1로 되겠습니다 자 이쯤 되면 일단 궁금하실 겁니다 골드클링 그러면 이제 1이 아니고 막 2나 10일이면 어떻게 돼요 그만큼 속도가 빨라집니다 그래서 여러분들 모바일 게임에서 약간 전투를 빨리 하게 빨리 끝내게 하는 그런 기능이 있잖아요 그거를 타임스캔하는 겁니다 기억해주고요 아무튼 저장하시고 자 이제 이렇게 생성된이 두 함수를 가지고 우리가 시간을 컨트롤 할 겁니다 그래서 일단 레벨업에서 하는게 좋겠죠 지금 보시면 쇼가 있는데요 자 보여줄 때는 시간을 멈춰야겠죠 게임 매니저 갑니다 인스턴스 갑니다 거기에서 스탑이라는 함수를 호출한 되구요 반대로 레벨업이 끝났습니다 다시 게임 시작해야죠 인스턴스 자 리점을 하면 되겠습니다 깔끔하죠 이렇게 서로 각자 자기 스크립트마다 그 역할 분담을 철저하게 잘 가려가면서 하고 있습니다 그런데 지금 우리가 이질 라이브라는 변수를 하는 투자했잖아요 사실 여기에서 끝이 아닙니다 이제 이렇게 컨트롤 했으니 이제 요거를 활용을 해야 합니까 그게 어딨냐면 바로 플레이어와 몬스터 그리고 뭐 스포너 이렇게 업데이트 함수를 쓰는 애들한테는 다 해줘야 됩니다 그래서 한번 보도록 할 거예요 일단 사실이 게임을 해줘에서도 업데이트가 하나 있긴 했죠 자 게임 시간이 지금 흘러가고 있습니다 그렇죠 요거 게임 시간도 정지하면 멈춰야 되기 때문에 만약에 if 라이브가 아니다 펄스다 하면은 리턴 해주시길 바랍니다 그러면 이게 펄 쓸 때는 게임 시간이 더해지지 않겠죠 좋습니다 이런 식으로 쭉쭉 가는 겁니다 자 그러면은 요거 말고도 플레이어 쪽도 한번 표현할까요 플레이어의 업데이트 구간을 보도록 하겠습니다 여기 보시면은 받고 있죠 이것도 만약에 게임 매니저 이즈 라이브가 아니다라고 하면은 역시나 리턴 해주시구요 이거 그대로 피스도 업데이트 레이트 업데이트도 이렇게 해주시면 좋겠습니다 각자 걸어주는 거예요 자 플랫 쪽은 되었구요 이번엔 몬스터 쪽 보겠습니다 에너미 들어주면 에너미도 지금 이렇게 있는데 이미 조건이 있죠 뭐 여기에서 더 추가하셔도 되고요 너무 코드가 길다 그러면 여기에다가 또 이품을 하나 더 붙여도 됩니다 상관없어요 자 레이트 업데이트도 뭐 이렇게 한 줄 더 추가해 주셔도 되고요 그 다음에 스포너라는 것도 있습니다 자 몬스터 소환한 것도 실행 멈췄으니까 더 이상 소환하면 안 되죠 스포너 쪽도 지금 업데이트 했는데 자이 업데이트 역시나 게임이 정지했으면은 요것도 더 이상 그 소환 타이밍을 멈추도록 하면 되겠습니다 자 그 다음에 요거 말고도 아마 웨폰 쪽에서도 업데이트가 좀 있을 겁니다 자 웹폰 좀 갈게요 업데이트에 요렇게 있었죠 자 요것도 요렇게 자 막아두도록 하겠습니다 자 그래서 웬만한 이제 업데이트는 다 이렇게 조건을 걸어놨는데요 컨트롤 쉬프트 S 하셔서 모두 저장하시고 되었으면 나가서 한번 테스트를 해보겠습니다 자 그런데 자 지금 플레이어가 이렇게 애니메이션 되겠구요 지금 아예 작동이 안되고 있어요 그렇죠 자 지금 작동이 안 되는 이유는 간단합니다 지금 게임 매니저에서 보시면 이즈 라이브가 아예 펄스로 되어 있죠 요거 체크해서 한번 풀어보겠습니다 자 이제 흘러가요 그렇죠 한번 레벨업을 해보면은 자 보겠습니다 레벨업을 해보면은 스탑이 되면서 지금 보시면 게임 컨트롤 이즈 라이브가 펄스가 되었죠 그러면서 다시 싹 다 꺼진 모습을 확인을 할 수 있습니다 그래서 여기에서 이제 뭐 삽을 고르고 엽총 고르고 태클을 잠궈 고민되는데 자 여기서 한 가지 좀 문제가 생겼습니다 지금 우리 사본 분명 레벨 2일 텐데 얘는 왜 이렇게 했을까요 자 사실 우리는이 아이템에서 온 어네이블만 세팅을 해놨지 다 끄고 랜덤 세계를 고르고 그 작업을 레벨업이라는 스크립트에서 쓰는데 지금은 안 했습니다 그래서 마지막이 랜덤 선택하는 것을 마지막으로 스크립트를 짜보도록 해요 그래서이 아이템 스크립트의 온 어네이블을 실행을 시키기 위해서 우리는 레벨업에서 미리 이거를 다 비활성화하고 랜덤 재개를 뽑는 함수를 새로 만들 것 같아요 그래서 마지막에 보이드 넥스트라는 함수를 작성을 할 겁니다 그럼 여기 넥스트에서 해야 할 첫 번째 자 과제는요 모든 아이템 비활성화 그 다음에 두 번째 해야 할 일은 그 중에서 랜덤하게 세계 아이템만 활성화입니다 근데 여기에서 중요한게 있죠 뱀파이어 서버에 오신 분들은 알겠지만 이게 아이템 중에서 특히 무기나 장비 같은 경우에는 만렙이라는 경우 있잖아요 만렙이 되면 더 이상 여기에 나오면 안 돼요 그렇기 때문에 한 가지 마지막을 해야 할 과제는 만렙 아이템의 경우는 소비 아이템으로 대체 해서 일단 1번부터 하겠습니다 요거는 순회공연해야 되니까요 포위 주문하겠습니다 아이템에 아이템 어디에 있죠 아이템스라고 하는 우리가 미리 만들어 놓은 배열 변수 있었죠 비활성화니까요 게임 오브젝트까지 넘어가서 거기에서 set active를 펄스로 바꿔 주시면 되겠습니다 1번은 간단하죠 근무합니다 자 2번부터 이제 진짜입니다이 랜덤 3개 즉 우리 다섯 개 있으니까 0 1 2 3 4 중에 랜덤 숫자 3개를 뽑아도 돼요 심지어 중복도 있으면 안 됩니다 그 숫자부터 만들고 갈게요 INT 자 랜덤이라 하겠습니다 자 뉴를 통해서 인트 뷰어를 만들 건데요 딱 3칸만 만들겠습니다 그 다음에 계속 반복을 하면서 랜덤 숫자를 만들 건데요 와일 문 쓸 겁니다 첫 번째 값은요 랜덤이라는 클래스에서 좀 찍고 레인지라는게 있습니다 지금 제가 갖고 있는 숫자 0부터 시작해서요 어디까지죠 아이템스에 길이죠 길이는 5인데 오는 펌이 0 1 2 3 4네 여기까지만 두 번째와 세 번째도 랜드 숫자를 만들어 주었구요 그런데 여기에서이 와일문을 빠져나가는 즉 내가 만족해야 되는 조건이 뭐냐 중복되는게 있으면 안 된다는 거잖아요 해서 자 랜덤 첫 번째와 같으면 안 돼요 랜덤 요게 자 이게 첫 번째 조건이었구요 and and죠 글이 있고 연산자입니다 그리고 두 번째와 세 번째도 같은 안 되고 자 마지막은요 첫 번째 거와 세 번째 거 같은건 안 된다 즉 첫 번째 두 번째 단두고 두 번째 두 번째는 안 되고 첫 번째와 세 번째도 안되고 자 모두가 갖지 않을 때는 이제 만족을 했으니까 그만둬라라고 브레이크 문은 건 겁니다 그럼 빠져나가면서이 랜덤 인트의 세 칸 배열에는 세 가지의 중복되지 않은 숫자가 들어 있을 것이죠 자 그럼 이제 이걸 토대로 해서 그냥 그 랜더마스터만 한 개씩만 끄집어내서이 아이템을 활성화 시켜주면 되죠 자 그걸 해보도록 하겠습니다 포문 둘게요 인덱스는 어디까지 랜덤의 레인지까지입니다 인덱스 플러스 플러스 해주시고요 랜더마 아이템 한 개 가져오겠습니다 랜덤 아이템은 어떻게 자 일단 아이템 쓰겠죠 거기에 랜덤한 숫자는 랜덤 배우려 있는데 지금 포문으로 한 개씩 순회를 하고 있죠 그래서 인덱스를 여기다 놓으시면 그러면 3번에 걸쳐서 랜덤한 아이템이 나오게 되겠죠 근데 그거를 이제 활성화 시켜주면 돼요 게임 오브젝트에 셋 액티브 해가지고 츄루 걸면 되겠죠 끝인가요 아닙니다 이렇게 나올 랜드마이템이 만렙이다 5렙이 되었어요 그러면은 소비 아이템으로 대체를 하라고 우리가 미리 적어놨죠 자이 모직을 사실 여기 안에다가 작성을 해 주셔야 됩니다 자 그러면 여기다가 분기점 이품을 한번 놓도록 할게요 if 랜덤 아이템 가져오고요 거기에 레벨이 뭐랑 같은가 자기 자신의 데이터에 들어있는이 데미지스의 바로 랭스 즉 최대 레벨인 것이죠 자 이거랑 같아버리면 더 이상 올라가면 안 되죠 그렇습니다 요거랑 월세랑 바로 할게요 얼서 같은 경우에는 만렙이 아니기 때문에네 이걸 랜덤 아이템 그대로 활성해 주시면 되고요 맞는다라고 하면은 어 그럼 이제 소비 아이템으로 대체해야죠 저같은 경우에는요 소비 아이템이 아이템 그룹에서 맨 마지막 음료수 하나만 딱 있습니다 그래서 그냥 저것만 수동으로 활성화 해주면 될 것 같아요 그럼 아이템스 자 마지막 자리 들어가 주시고요 점집고 게임 오브젝트에 셋 액티브를 주르로 하면 되겠습니다 소비할 팀이 두 개나 3개이신 분 이런 분은 어떻게 하느냐 랜덤 렌즈를 활용을 하는 겁니다 그래서네 번째 다섯 번째 여섯 번째가 다 소비 아이템이다라고 하면은 랜덤 레인지 4에다가 이렇게 칠을 하면 되겠죠네 요런 식으로 해서 소바이템 3개 중에서 하나를 이렇게 랜덤으로 활성화시킬 수 있다 한번 팁을 드렸고요 전 이렇게 하도록 하겠습니다 다시 올라와서 이 넥스트라고 하는 함수를 어디선가 호출을 해야겠죠 그것이 바로 창을 보여주는이 쇼라는 함수입니다 그래서 여기에서 붙여 주시고 저장하시면 되겠습니다 자 그럼 이제 계속 이제 레벨업을 하면서 이제 계속 쭉쭉 나올 텐데 그랬던 사실 우리가 지금 경험치가요 게임을 이제 보시면은 10등도 밖에 저 안 돼 있죠 이제 계속 무한 레벨을 해야 되기 때문에요 두 곳에서만 딱 두명하면 되는데요 get exp 있죠 자 여기에서이 레벨이 만약에 뭐 10을 넘어서 뭐 10일 10일 이러면은 인덱스로 나겠죠 그래서이 레벨을 그냥 쓰면 안 되고 여기에는 mathf가 되더라구요 자 최소값을 넣겠습니다 지금 현재 레벨이 있고 그리고요 next exp에 랭스 마이너스 1 자이 둘 중에 작은 값을 내놓겠습니다라고 하는 겁니다 그렇다면 지금 우리가 넥스트 exp의 렝스는 지금 10이잖아요 거기 -11 하면 이제 국어 되겠죠 0부터 8까지는 그냥 얘가 나오겠죠 9 이상 9 이상부터는 애가 작아지기 때문에 요것만 나오겠죠 그래서 우리가 실제 레벨은 뭐 시비든 20이든 100이든 해도 여기에서는 9밖에 안 나올 겁니다 자 이전 첨가하시고요 이거 그대로 하나 복사하셔서 하나 더 둘도 있는데 바로 여기 UI 부분이었죠 자 UI 쪽 하겠습니다 ESP 가셔서 여기 HUD 들어가 보시고요 쭉 가시면은 exp 부분에 next exp가 이렇게 되어 있을 겁니다 자 요것도 마찬가지로 레벨을 여기 레벨 구간에 넣어주고요 넥스트 exp에다가 앞에 게임 매니저 점 인스턴스 이렇게 붙여 주셔 가지고 적용해 주시면 될 것 같습니다 되셨나요네이 두 가지만 넣으면 됩니다 됐으면 저장해 주시면 되겠습니다 요것도 저장해주시고요 마지막으로 원활한 테스트를 위해서 자 게임 메뉴 보시면은 경험치가 요렇게 기아 급수적으로 올라가 있는데요 자 요거는 어차피 이렇게 초기가 돼 있죠 그래서 과감하게 요거를 작게 줄여 보도록 하겠습니다 이런 식으로요 되었나요 테스트입니다 그래서 한번 플레이를 해보려고 해요 자 게임 별죠 라이브 츄르 개복구요 자 한번 광랩 한번 해봅시다 자 추가 그 다음에 연사력 추가 제일 레벨 할 때마다 지금 보고 계시면이 아이템 그룹에서 활성화되는 애들이 계속 랜드만 바뀌고 있죠 그렇습니다 자 확인되고 있고요 자 일단 레벨업하고 있는 애들만 기술 레벨 해볼게요 샵 레벨 3입니다 3레벨 지금 이제 아이템이 두 개가 나왔어요 원래 이게 나으시는데 이제 레벨 5가 됐기 때문에 안 나오고 음료수로 대체된 거예요 근데 세계적인 이미 음료수 하나 있었으니까 아이템이 두 개만 나온 겁니다 레벨업을 해 볼게요 자 이제 모두 레벨에 음료수만 계속 나올 거예요 경험치는 계속 우리가 마지막에 진행해 두었던 요것만 계속 이제 청구를 할 거고요 됐죠 레벨은 계속 오를 겁니다 이런 식으로 좋습니다 자 요렇게 해서 여러분들 잊으세요 정식적으로이 레벨업 시스템을 완성을 하게 되었습니다 어때요 괜찮죠 자 그럼 이제 점점 남은 시스템도 하나 둘씩 완성해 보도록 해요 감사합니다
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube 골드메탈 (Unity 한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기