-
UI 공격 & 대쉬 버튼
현재 작업 진행중인 영상 입니다.이번 작업을 진행 하면서, 초기 플랫폼을 명확히 타겟하고 작업을 진행해야 한다고 느꼈습니다. 기존 Input으로 Horizontal과 left shift를 입력 받아 공격과 대쉬를 구현하였었는데, 이를 버튼클릭으로 변경하다 보니 점프 버튼과 플레이어 이동 조이스틱도 필요할 것으로 생각이 들었습니다. 우선 작업 진행 방식은 기존 로직을 코루틴으로 변경 하는것으로 작업해 주었습니다.private void Update(){ if (playerMovement.dashing == true) return; GetInputs(); Attack();}private void GetInputs(){ isAttack = Input.GetMouseButtonDown(0)..
-
UI 아이템 패널 - 물약
물약 버튼 클릭시 체력 회복과 쿨타임을 로직을 구현 하였습니다. 간단한 흐름도를 보자면 1. 물약 버튼을 클릭한다2. 물약의 개수가 1개 이상일때 실행한다3. 플레이어의 체력이 최대 체력보다 낮을때 실행한다4. 물약을 먹은 플레이어의 체력 값이 최대 체력보다 높으면 최대체력, 낮으면 회복값을 그대로 더해준다. 스크립트를 보면서 UI와 함께 살펴 보겠습니다.public class ItemPotion : MonoBehaviour{ [SerializeField] private TextMeshProUGUI potionQuantity; [SerializeField] private GameObject cooltime_Gameobject; [SerializeField] private Image coo..
-
UI 정보 패널 & 미니맵
현재 작업 진행중인 영상 입니다.플레이어 정보 패널과 미니맵 UI 연결 과정 작업을 진행하였습니다. 가장 먼저 유니티 하이어라키 창에서 Manager 스트립트를 만들고 Static 변수로 만들고 플레이어의 정보 들을 담은 PlayerInfomations 스크립트와 UI를 다룰 uiManager 스크립트를 public으로 인스펙터 창 에서 연결해 주어 접근을 용이하게 했습니다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class Manager : MonoBehaviour{ public static Manager Instance = null; public PlayerInfomations pl..
-
UI 기획 (1차)
현재 작업 진행중인 영상 입니다.몬스터의 공격 구현과 함께 플레이어가 피격 되는 동작 구현을 하기 전 간단한 UI를 배치해 보았습니다.컨셉은 Figma를 이용하여 간단히 UI 도안을 작성해 보았고 각 버튼 별로 텍스트가 적혀 있지만 패널마다 하나씩 살펴 보겠습니다. 플레이어 정보패널과 미니맵 입니다. 레벨과 HP가 보여지며 플레이어의 공격 값 과 방어 값 을 텍스트로 넣었습니다. 하단에 보시면 Item이 장착되는 칸이 있습니다. 물약과 같은 소비 아이템을 넣어 플레이어와 상호작용을 구현할 예정 입니다. 플레이어 공격 패널 입니다. 현재 마우스 클릭으로 공격 모션을 취하고있고 Left Shift로 대쉬를 하고 있지만 모바일에서도 상호 작용을 하기 위해 공격 버튼과 대쉬 버튼을 따로 두어 쿨타임을 걸어줄 예..
-
몬스터 상태 구현 (Update)
현재 작업 진행중인 영상 입니다.몬스터 상태 구현을 업데이트 하였습니다. 또한 기존 애니메이션 전이 조건을 대부분 Trigger로 진행 하였었는데, 한번 꼬이기 시작하먼 겉잡을수 없어진다는 점과, 흐름을 파악하기가 매우 힘들어 지는 현상이 발생하여 모든 파라미터를 Bool 변수로 true || false로 변경하였습니다. 간단한 흐름 상태를 보자면 몬스터는 Idle 상태에서 유니티가 실행 되면 Walk 상태가 됩니다. Walk 상태에서 Idle로 넘어가는 조건은 플레이어에게 피격을 당했을시 전투 돌입 준비 상태로 들어섭니다. 준비 상태 이후 플레이의 위치를 총 2번 감지하는데, 첫번째 감지는 플레이어를 추적하기 위함이고 두번재 감지는 플레이어가 몬스터의 공격 범위 내에 들어섰는지 감지합니다.이후 검을 드..
-
몬스터 상태 구현
몬스터의 상태 구현과 애니메이션 작업 과정 입니다. public enum MonsterState{ Idle, Walk, AttackReading, Attack}public MonsterState monsterState = MonsterState.Walk;현재 몬스터의 상태는 대기, 걷기, 공격대기중, 공격 으로 총 4가지 상태가 있으며 초기 상태는 걷기 상태 입니다. switch (monsterState){ case MonsterState.Idle: monsterAnimator.SetTrigger("Idle"); if (player.position.x = targetX) { transform.localScale = new Vector2(..
-
플레이어 공격
작업 진행중인 영상 입니다.private bool isAttack = false;private bool isAttacking = false;private float timeBtweenAttack = 0f;private float timeSinceAttack = 0f;private void Attack(){ timeSinceAttack += Time.deltaTime; if (isAttack && timeSinceAttack >= timeBtweenAttack) { timeSinceAttack = 0; playerAnimations.PlayerAttacking(); if (isAttacking == false) { Hit..
-
플레이어 이동 로직
작업 진행 중인 영상using UnityEngine;public class PlayerMovement : MonoBehaviour{ [SerializeField] private Rigidbody2D playerRigidbdy2D; [SerializeField] private float walkSpeed = 20.0f; private float xAxis = 0f; private void Update() { GetInputs(); MovePlayer(); } private void GetInputs() { xAxis = Input.GetAxisRaw("Horizontal"); } private void MovePla..