본문 바로가기

2D 콘텐츠 제작/[언데드 서바이벌] 제작 일지9

[언데드 서바이벌 08] 모바일 빌드하기 및 플레이영상 1. 조이스틱으로 Input 받아 움직이기 Package Manager - 'Input System' 으로 들어간 후 'Samples' 클릭 스크린에서 조작할 것이기 때문에 'On-Screen Controls'를 다운받기 조작을 도와줄 프리팹들이 생겨났다. 나는 조이스틱을 사용할 것이기 때문에 Stick만 필요하다! Canvas에 빈오브젝트로 Joy 추가 후 위의 프리팹 중 Stick을 가져와 아래에 붙이기 Stick을 보면 아래와 같이 'On-Screen Stick'스크립트가 자동으로 붙어져 있어서 동작을 하게된다. ++) Player 스크립트에 아래와 같이 추가되어야 Input System으로 동작을 한다!! 조이스틱 작동 테스트를 했는데 문제가 많다,,ㅋㅋ [문제점] 1. 조이스틱의 스틱 부분의 스.. 2023. 9. 20.
[언데드 서바이벌 07] 게임 시작, 종료 & Player 캐릭터 선택 1. 게임 시작 및 종료 01. 게임 시작 02. player 죽음 -> 게임 종료 Player 스크립트에 아래와 같이 피격 로직 작성 **OnCollisionStay2D : 충돌 직후 맞닿아있는 동안 매 프레임 호출 (OnCollisionEnter2D: 충돌한 순간 1회만 호출) **'GameManager.instance.health -= 10;' 이라고 안 한 이유? : 매 프레임마다 -10이 되기 때문에 너무 빨리 죽음. 따라서 Time.deltaTime을 곱해주어 피격 데미지 속도 조절. 실행 결과 health =0 되면 무덤 생기고 필요없는 player자식들 비활성화 됨 게임종료 - 게임종료 ui 만들고 - GameManager 스크립트에 GameOver() 메서드와 GameOverRoutine.. 2023. 9. 19.
[언데드 서바이벌 06] 레벨업 시스템 구현 & 오류 수정 1. 레벨업 시스템 구현 레벨업을 했을때 랜덤으로 item창 나오게 하기 - itemGroup을 관리하는 'LevelUp' 오브젝트 만들어주고 자식에 아래와 같이 넣어주기 - LevelUp 스크립트 새로 생성하여 아래와 같이 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; public class LevelUp : MonoBehaviour { private RectTransform rect; private Item[] items; void Awake() { this.rect = this.GetComponent(); //...(true) => 활성,비활성 모두 찾음 this.items = this.GetComp.. 2023. 9. 19.
[언데드 서바이벌 05] HUD 구현 & 피격 액션 추가 & 능력 업그레이드 구현 1. HUD (Head Up Display) 구현 -Exp, Level, Kill, Time, Health - GameManger 스크립트에 Player Info 정보 추가하기 - HUD 스크립트 새로 생성하여 아래와 같이 입력 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class HUD : MonoBehaviour { public enum eInfoType { Exp, Level, Kill, Time, Health } public eInfoType type; //UI 타입들 private Text text; private Slider slider; voi.. 2023. 9. 18.
[언데드 서바이벌 04] 공격 구현(근거리, 원거리)&무기 장착 1. 공격 구현 : 근거리(삽) 오브젝트 풀링으로 만들어진 Bullet(삽)을 관리하는 Weapon을 Player에 추가 Weapon 스크립트 추가 및 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon : MonoBehaviour { //무기id, 프리팹id, damage, 갯수, 속도 public int id; public int prefabId; public float damage; public int count; public float speed; [SerializeField] private Bullet bullet; void Start() { this.Init(); .. 2023. 9. 16.
[언데드 서바이벌 03] 오브젝트 풀링으로 몬스터 생성 & 몬스터 레벨 적용 1. 오브젝트 풀링으로 몬스터 생성 오브젝트 풀링을 사용하는 이유? : Instantiate 와 Destory를 자주 사용하면 메모리에 문제가 생길 수 있음 따라서 오브젝트들을 미리 생성해놓고 활성/비활성을 통해 게임신에 노출하는 것을 조절하자 01. 목표 Player 주변에 설정해둔 Point들 中 랜덤으로 1곳에서 0.2초 마다 3가지 몬스터 中 하나를 랜덤으로 생성하기 설정해둔 Point(몬스터 생성 위치) 들 몬스터 종류 3가지 - PoolManager에 넣어주기 [스크립트] PoolManager using System.Collections; using System.Collections.Generic; using UnityEngine; public class PoolManager : MonoBeh.. 2023. 9. 15.