56. Unity 최종 프로젝트 2주차

이규성·2024년 1월 16일
0

TIL

목록 보기
62/106

01/16

📌알고리즘 코드 카타 (Algorithm Code Kata)

3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

입출력 예

nresult
457
125229
using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        return answer;
    }
}

📌팀 프로젝트 진행

Weapon 구현 설계

필요한 사항

공격 애니메이션

  1. 캐릭터의 손에 대검 위치 시킨다.
    대검의 위치를 수정하였다.
  2. 대검을 들었을 시 Idle 애니메이션 변경이 필요해 보인다.
    InventoryUI와 관련된 스크립트 리뷰 중.........
  3. 대검 공격 애니메이션의 콤보 어택이 통으로 되어 있던데 나눌 수 있는지 확인이 필요해 보인다.
    콤보가 나누어져 있는 것을 확인하였다. Player의 Animator에 추가하였다.

PlayerAttackState.cs, PlayerComboAttackState.cs

  1. 위의 사항을 점검하고 알맞게 두 스크립트의 수정이 필요해 보인다.

Weapon.cs, Health.cs

  1. FSM에 맞게 강의에 따라 우선 구현을 시도한다.
  2. 정상적으로 무기 공격이 동작한다면 상태이상 시스템을 적용해 본다.
    https://teamsparta.notion.site/231211-4c21f35ab2dc494eb063a324a94e54de

금일 구현 설계

팀장님의 설계방향

  • IdleState 클래스 내에 매개변수로 QuickSlot 을 받는 함수를 생성한다.
  • 9번줄(IdleState 클래스의 생성자) 에 플레이어의 ToolSystem 의 이벤트(OnEquip) 에 1번에서 생성한 함수를 바인딩한다.
  • 1번에서 생성한 함수 내에서, QuickSlot 매개변수를 가지고 ItemSlot → ItemData 를 접근해서 변수에 저장한다.
  • 변수에 저장한 ItemData 를 ToolItemData 로 형변환을 하면, 양손 무기인지 체크하는 bool 값에 접근이 가능할 것으로 예상됩니다.
  • 해당 bool 값을 통해서 Animation 스위칭 하는 로직 작동

금일 구현한 사항

  1. 두 손 도구일 경우 애니메이션 변경하기.
PlayerIdleState.cs

public PlayerIdleState(PlayerStateMachine playerStateMachine) :base(playerStateMachine)
{
    Managers.Game.Player.ToolSystem.OnEquip += OnEquipTwoHandedTool;
}

public void OnEquipTwoHandedTool(QuickSlot quickSlot)
{
    // QuickSlot에 저장된 ItemData 값을 매개 변수로 받아서 TwoHandedTool에 저장
    ItemData TwoHandedTool = quickSlot.itemSlot.itemData;
    // ItemData에 종속된 class ToolItemData에 bool isTwoHandedTool 변수를 참조하기 위하여 형변환
    ToolItemData toolItemDate = (ToolItemData)TwoHandedTool;

    // ToolSystem의 event OnEquip에 구독하여 아래의 조건문을 이용하여 애니메이션을 켜고 끈다.
    if (toolItemDate.isTwoHandedTool == true)
    {
        StartAnimation(_stateMachine.Player.AnimationData.EquipTwoHandedToolIdleParameterHash);
        Debug.Log("두 손 애니메이션 시작");
    }
    else
    {
        StopAnimation(_stateMachine.Player.AnimationData.EquipTwoHandedToolIdleParameterHash);
    }
}
  1. 공격 애니메이션 추가

금일 이슈

  1. 애니메이션 동작 순서가 이상하다.

모션이 이상하여 살펴보니 애니메이터에서 walk와 idle 간의 트랜지션이 잘못되었음을 확인하고 변경하여 해결하였다.

  1. 공격 애니메이션이 뜻대로 동작하지가 않는다.

우선 두 손 상태 머신을 추가하여 해결해보기로 스크럼 때 말하였고 팀장님이 내 브랜치를 가져가서 좀 살펴본다고 하신 상황이다. 내일 고칠 예정.

금일 커밋한 사항

두 손 도구와 관련된 애니메이션을 추가하였습니다.

0개의 댓글