Print Friendly and PDF

유니티 77

[디펜스 게임 제작] 상점 및 뽑기 시스템 제작

이번 시간에는 상점과 그 상점에서 판매하는 영웅 뽑기 시스템을 제작하려 합니다. 상점 래퍼런스- 아직 꾸밀 정도의 UI가 없긴하지만 이러한 모습으로 우측 하단에 1회, 10회 뽑기를 넣을 예정 상점 테이블상점ID판매재화가격판매 아이템판매 아이템 갯수INTINTINTINTINT 아이템 테이블아이템ID아이템 이름아이템 설명아이콘아이템 종류연결된 테이블 아이디INTSTRINGSTRINGSPRITEINT(ENUM)INT(다른 테이블과 연결된 아이템일 경우 그 테이블의 아이디) 뽑기 테이블뽑기ID균등확률 여부아이템 아이디~확률~INTBOOLINTFLOAT 뽑기 플로우 차트 - 플로우 차트와 테이블이 나왔으니 시스템을 제작하기 전 테이블부터 하나씩 추가 해보겠습니다. 아이템 테이블 추가using System;usi..

[디펜스 게임 제작] 로비 구성 및 유저 챕터 데이터 저장

이번 시간에는 로비 씬 구성과 유저 마지막 클리어 챕터 저장을 할 예정입니다.따로 플로우차트는 필요 없을 것 같아 패스하고 마지막 클리어 챕터 저장부터 만들겠습니다. 마지막 챕터 저장using System;using System.Collections.Generic;public class UserData{ static UserData _instance; public static UserData _userdata { get { if (_instance == null) { _instance = new UserData(); } return _instance; ..

[디펜스 게임 제작] 스킬 선택지 시스템

이번 시간엔 영웅들의 스킬을 강화하거나 추가하는 스킬 선택지 시스템을 제작하려 합니다. 제작에 앞서 필요한 것들을 미리 생각하고 구조를 짜 놓은 후 작업에 들어가려 합니다.최근 생각하지 않고 작업에 들어갔더니 코드 구조가 영 마음에 들지 않고 꼬이는 것 같아 여기에 글을 적어두고 하려 합니다. 우선 선택지 시스템을 작업하기 위해선 UI, 영웅들의 스킬 이렇게 두가지고 필요하며 UI - 현재 필드에 있는 영웅들 스킬중 랜덤으로 가져오는 기능과 스킬을 선택했을 때 그 해당 영웅에게 스킬이 추가되는 기능이 필요하며영웅 스킬 - 2가지 구분이 필요한데 현재 사용 가능한 스킬, 선택 가능한 스킬 이렇게 필요할 것 같아 보입니다. 추가로 영웅 스킬의 레벨을 달아서 동일한 스킬을 선택했을 경우 더 높은 수치를 가질..

[디펜스 게임 제작] 공격 사거리 표기

이번 시간엔 캐릭터 인포 버튼 클릭 시 해당 캐릭터의 공격 사거리를 표기하려 합니다. UI_Hero_Btn 클래스 수정public class UI_Hero_Btn : MonoBehaviour{ public static event Action _hero_click_event; ...생략 public void Btn_Click() { UI_Status._heroclass = () => _heroclass; _hero_click_event?.Invoke(_heroclass.GetID()); }}- 클릭하면 _hero_click_event 이벤트 실행 시키도록 추가 UI_Status 클래스 수정using System;using UnityEngine;public cl..

[이론] ECS

이번 시간엔 ECS와 Job, Burst에 대해 알아보려 합니다.그전에 알아봐야할 OOD에 대해 간단하게 설명해보려 합니다. OOD란?(Object Oriented Design)- 속성, 기능을 하나로 묶어 객체로 표현하고 이 객체를 기반으로 점차 확장, 연결하여 다양하고 긴밀한 객체들을 개발합니다. 이러한 방식은 개발자가 의도한대로 빠른 개발이 가능한 장점이 있지만 여러 문제점이 있습니다 객체 지향 디자인의 문제점- 기능이 추가 될 때마다 구조가 복잡 : 새로운 객체들이 생길때마다 점점 늘어나기 때문- 과거 개발 히스토리를 파악해 두어야함 : 위에 설명한 것처럼 새로운 것들이 생길때마다 늘려가기 때문에 과거 히스토리를 모르면 어려울 수 있음- 연산처리가 객체 중점 : CPU보다는 메모리를 많이 사용하며..

[디펜스 게임 제작] 강화 시스템 변경

현재 강화시스템은 단일로 강화하면 모든 영웅들이 강화가 되도록 했습니다.좀 더 전략적으로 강화 시키기 위해 개별로 강화 시킬 수 있도록 변경할 예정입니다. - 이런 느낌으로 각 영웅들의 정보를 띄어주고 클릭하면 하단에 강화 버튼이 나오도록 할 예정입니다. 클래스 구조1. 먼저는 UI_Hero 클래스에서 UI_Hero_Btn클래스를 초기화 해준다.2. UI_HeroBtn을 클릭하면 UI_Status 클래스를 가진 오브젝트가 활성화가 된다.3. 활성화된 UI_Status는 UI_Btn_Status_Upgrade클래스를 가진 버튼 오브젝트를 초기화 해준다.4. 활성화된 UI_Btn_Status_Upgrade 버튼을 클릭하여 이벤트를 통해 Status를 StatsuUpgadeManager로 업그레이드 한다.5..

[디펜스 게임 제작] 게임 오버 처리

이번엔 게임 오버처리를 해볼 것입니다. 게임오버 팝업창을 제작한 후 보호 오브젝트가 사망하거나 모든 스테이지를 클리어 했을 때 팝업창이 나오도록 할 예정입니다.PlayManager에 Action을 추가 후 필요 내역들을 구독하여 사용할 예정입니다. 팝업창 제작using TMPro;using UnityEngine;using UnityEngine.SceneManagement;public class UI_GameOver : MonoBehaviour{ [SerializeField] TextMeshProUGUI _stage; [SerializeField] TextMeshProUGUI _title; const string STAGEINFOTEXT = "STAGE {0} - {1}"; publi..

[디펜스 게임 제작] 스테이지 표시

이번 시간엔 스테이지 번호 표시를 만들 예정입니다. UI추가 및 스크립트 추가using TMPro;using UnityEngine;public class UI_Stage : MonoBehaviour{ [SerializeField] TextMeshProUGUI _stagenumber; string STAGENUMBER = "STAGE {0}/{1}"; void Start() { StageNumberSetting(); PlayManager._play_stageclear += StageNumberSetting; } void OnDisable() { PlayManager._play_stageclear -= StageNumberSettin..