Print Friendly and PDF

전체 글 214

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

이번엔 게임 오버처리를 해볼 것입니다. 게임오버 팝업창을 제작한 후 보호 오브젝트가 사망하거나 모든 스테이지를 클리어 했을 때 팝업창이 나오도록 할 예정입니다.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..

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

화면에 보이는 강화 버튼을 클릭하여 Status를 강화 시키는 시스템을 제작할 것입니다. 방법- 1번 클릭당 1레벨업으로 하여 Manager클래스에 status레벨 저장- 저장한 레벨을 최대 status값을 이용해 레벨당 얼마의 값을 넘겨줄 예정- 넘겨준 값을 이용해 현재 유저의 Status값에 추가 UI_Btn_Status_Upgrade 클래스 제작using System;using TMPro;using UnityEngine;public class UI_Btn_Status_Upgrade : MonoBehaviour{ [SerializeField] ESTATUSUPGRADE _estatusupgradekind; [SerializeField] TextMeshProUGUI _level; [Se..

[이론] 렌더 파이프 라인

렌더 파이프라인 이란?- 씬의 콘텐츠를 가져와 화면에 표시하는 작업을 말합니다.- 수행하는 작업으로는 컬링, 렌더링, 포스트 프로세싱이 있습니다.- 파이프라인은 저마다 기능/성능 특성을 가지고 있으며, 다양한 게임, 앱 및 플랫폼에 적합합니다. 렌더 파이프라인 종류- 빌트인 렌더 파이프 라인 : 유니티의 기본 렌더 파이프 라인으로 커스터마이즈 옵션이 제한적- 유니버셜 렌더 파이프라인(URP) : 쉽고 빠르게 커스터마이즈 가능한 스크립터블 렌더 파이프라인으로, 광범위한 플랫폼에 최적화된 그래픽스 구현 지원- 고해상도 렌더 파이프라인(HDRP) : 스크립터블 렌더 파이프라인으로, 고사양 플랫폼을 위한 최신 고해상도 그래픽스 구현 지원 - Unity의 스크립터블 렌더 파이프라인 API로 커스텀 렌더 파이프라인..

[디펜스 게임 제작] 플레이어, 몬스터 게임 실행 매니저 추가

플레이를 주관하는 PlayManager를 기반으로 해서 PlayerSpawnManager과 MonsterSpawnManager을 추가 진행 PlayManager 클래스 추가 using System;using Cysharp.Threading.Tasks;using UnityEngine;public class PlayManager : MonoBehaviour{ public static event Action _play_event; public static event Action _play_ready_event; public static Action _player_end; //TODO: 모든 스테이지 클리어 처리 필요 public static Action _play_stageclear; ..

[디펜스 게임 제작] 캐릭터 제작

- Player_Base 또한 몬스터와 동일한 구조로 제작 BasePlayer 클래스 추가using UnityEngine;public class Player_Base : BaseNPC{ public virtual void OnSpawn(Vector2 spawnpoint) { transform.position = spawnpoint; base.OnSpawn(); }}- Player는 자기 자리에 서서 공격할 것이기 때문에 MoveController가 필요 없음- spawnpoint로 바로 그 자리에 소환 SO_PlayerPrefab 클래스 추가using System;using System.Collections.Generic;using UnityEngine;[Crea..

[디펜스 게임 제작] 공격 처리

공격 진행을 위해선 "공격 가능 사정거리"가 필요하기 때문에 콜라이더를 씌어주고 "AttackAreaController"를 추가할 계획 AttackAreaController 추가using System;using System.Linq;using UnityEngine;public class AttackAreaController : MonoBehaviour{ [SerializeField] CircleCollider2D _attackarea; [SerializeField] LayerMask _targetlayer; public event Action _enter_active_skill_event; BaseNPC _targetnpc; private void Update() { ..

[읽코좋코] 설명/요약 변수

설명변수란?- 커다란 표현을 쪼개서 작은 단위표현으로 '추가변수'를 만드는데, 이 '추가변수'는 하위표현의 의미를 설명하므로 '설명변수'가 된다. 가령 if(line,split(':')[0].strip() == "root": ...위와 같은 코드를 username = line,split(':')[0].strip();if username == "root": ...처럼 "username"이라는 이름의 '추가변수'로 만들어 split하고 strip한 변수가 어떤 변수인지 '설명'이 가능하도록 만드는 것이다.*이렇게 하면 저 큰표현이 어떤 것인지 읽는 사람 입장에선 쉽게 이해가 된다. 요약변수란?- 의미를 쉽게 파악할 수 있어도, 새로운 변수에 담아 큰 코드의 덩어리의 코드를 더 쉽게 관리하고 파악하는데 목적을..