전체 글 366

무한 맵 버그 수정 완료 및 근접, 원거리 무기 생성만 해둠

보니까 타일이 15x15인줄 알았는데 아니여서 Player의 자식으로 붙여놓은 Area라는게 나가면 Reposition이라는 스크립트로 타일을 재배치 해주는건데 기존 15x15 타일이 15x15가 아니였던 것 같고, 그래서 15x15 Area의 Collider가 범위를 벗어난 구역이 있어서 타일 재배치에 오류가 계속 생겼던 것 같다. 버그 수정 방법은 뭔가 코드에는 문제가 없는 것 같은데 계속 타일이 이상하게 배치되서 타일맵을 20x20으로 다시 만들어보니까 버그가 수정된 것을 발견할 수 있게 되었다.근데 캐릭터가 왼쪽으로 이동할 때 무기도 같이 Flip 하지 않아서 고민을 해봐야될 것 같다

타일을 움직이게 하기 위한 생각들

처음에는 이런 식으로 타일 4개가 4분면체로 붙어있는 거에 플레이어 위치 - 타일 위치 를 해서 그 거리 값을 구했는데그래가지고오른쪽 위 타일이 0번 이라 치면 플레이어가 X축으로 -5로 가면 0번 타일의 X축을 -30 으로 해서 왼쪽으로 가게 하면 될 줄 알았지만 다음에 타일이 이동할 경우 타일의 X값이 -30으로 되어있어서 절대적인 X,Y 거리 계산 값으로는 오류가 발생할 것 같았다. 그래서 이 방법은 안될 것 같았고, 나중에 더 생각해봐야 될 것 같다.

시네머신 카메라로 캐릭터 따라가는 카메라 적용 및 Tile 늘림

Cinemachine 카메라를 이용해 Follow Target을 Player로 설정하고 Damping을 0으로 설정해줘서 플레이어가 움직이면 즉각 반응하게 만들었다. 그리고 타일을 기존에는 10x10 으로 했었는데 Cinemachine 카메라를 함으로써 카메라가 좀 커진거 같아서 타일 1,2,3,4 각각의 크기를 15x15로 바꿔주었다.

플레이어 이동 방향(x,y)에 따라 애니메이션 적용

using UnityEngine;using UnityEngine.InputSystem;public class PlayerController : MonoBehaviour{ private Vector2 inputVec; // 입력 값 private Vector3 moveDirection; // 움직임 값 [SerializeField] private float speed = 3f; // 움직임 속도 [SerializeField] private SpriteRenderer spriteRenderer; // 스프라이트 [SerializeField] private Animator anim; // 애니메이터 private void FixedUpdate() { // 움..

플레이어 Input System WASD 이동, 애니메이션

Player가 Input System 을 이용해 WASD 움직임을 구현함. Player의 애니메이션인 Stand, Run, Dead의 애니메이션을 만들었음. PlayerController.csusing UnityEngine;using UnityEngine.InputSystem;public class PlayerController : MonoBehaviour{ private Vector2 inputVec; private Vector3 moveDirection; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { } ..

게임 시작 누르면 GameUI 창 뜨게 만듦, 캐릭터 Sprite만 생성

UIManager.csusing TMPro;using UnityEngine;using UnityEngine.UI;public class UIManager : MonoBehaviour{ [Header("UI")] [SerializeField] private Button gameStartBtn; // 게임시작버튼 [SerializeField] private Button storeBtn; // 상점버튼 [SerializeField] private Button optionBtn; // 옵션버튼 [SerializeField] private GameObject optionGo; // 옵션창 [SerializeField] private GameObject storeGo; // 상점창 ..

시간, 밀리초 게임종료타이머 생성, 킬수 이미지와 텍스트만 생성

게임종료 타이머 생성을 위해 타이머의 초, 밀리초 부분을 생성했다!Inspector 상에도 알아보기 쉽게 Header 구분을 했고, 시간을 Inspector 상에서 수정할 수 있게 하였다! UIManager.csusing TMPro;using UnityEngine;using UnityEngine.UI;public class UIManager : MonoBehaviour{ [Header ("UI")] [SerializeField] private Button gameStartBtn; // 게임시작버튼 [SerializeField] private Button storeBtn; // 상점버튼 [SerializeField] private Button optionBtn; // 옵션버튼 [..

게임종료 시간, 경험치바 생성 및 뒤로가기 버튼 수정

UIManager.csusing UnityEngine;using UnityEngine.UI;public class UIManager : MonoBehaviour{ [Header ("UI")] [SerializeField] private Button gameStartBtn; // 게임시작버튼 [SerializeField] private Button storeBtn; // 상점버튼 [SerializeField] private Button optionBtn; // 옵션버튼 [SerializeField] private GameObject optionGo; // 옵션창 [SerializeField] private GameObject storeGo; // 상점창 [Seriali..

UI 게임시작, 옵션, 상점 버튼 및 창 뜨고 사라짐, 게임시작버튼 누르면 UI 전체 사라짐, 소리 Slider만 생성, 뒤로가기 버튼 생성

UIManager.csusing UnityEngine;using UnityEngine.UI;public class UIManager : MonoBehaviour{ [SerializeField] private Button gamestartBtn; // 게임시작버튼 [SerializeField] private Button storeBtn; // 상점버튼 [SerializeField] private Button optionBtn; // 옵션버튼 [SerializeField] private GameObject optionGo; // 옵션창 [SerializeField] private GameObject storeGo; // 상점창 [SerializeField] private Ga..