유니티3D - 마무리
마무리 디테일한 것들과 중간에 처리하지못한 버그들을 해결하고 맵과 클리어조건을 만들어 게임을 완성시켜보자. 맵제작 노말맵 머티리얼로 대충 바닥, 벽, 상자 등으로 나누어서 구분후 생동감을 위해 노말맵 정도는 넣어줘야겠다. ...
마무리 디테일한 것들과 중간에 처리하지못한 버그들을 해결하고 맵과 클리어조건을 만들어 게임을 완성시켜보자. 맵제작 노말맵 머티리얼로 대충 바닥, 벽, 상자 등으로 나누어서 구분후 생동감을 위해 노말맵 정도는 넣어줘야겠다. ...
이번 목표 Player 상태창(HP, 총알) UI 만들기 , 총알 수 만들기 , 상점에서 총기 구매 프로젝트 디테일 마무리 등 상태창 만들기 일단 UI 클래스를 만들어서 관리하겠다. 이 UI도 싱글톤처럼 이용해보자. 슬라이더와 텍스트메쉬를 이용해서 구현할것이고, Player에서 weapon,Status 컴포넌트를 처음에 캐싱해와서 이용할 것 us...
이번 목표 죽었을 때 AI가 총을 드랍하고 UI를 만들어 플레이어와 상호작용하여 픽업이 가능하게해보자. 총기 드랍 WeaponComponent에서 드랍을 처리하고, 드랍된 아이템을 관리하는 DropItem 클래스를 분리한다. 드랍 데이터는 ScriptableObject 기반으로 외부화해 순환참조를 피하고, 프리팹/이름/아이콘 등 메타데이터를 한 곳...
이번 목표 플레이어와 AI에 체력을 만들어 보자 체력 체력을 구현하기위해 AI와 Player가 사용할 Status 클래스를 만들어 관리해주자. using UnityEngine; public class Status : MonoBehaviour { [SerializeField] private float maxHP = 100f; [Ser...
이번 목표 여태 정리하지 못한 캐릭터 구조정리? AI와 Player가 같은 컴포넌트로 이용하게 완벽히 생각해서 나아가보자. 구조 정리 먼저 확실한 차이는 컨트롤러다. 입력 경로가 다르기 때문에, 공통 로직/데이터와 입력 주체를 분리해서 정리한다. 잡다한 생각인 부분 움직임 실행 주체가 달랐다. 같은 속력 값을 쓰려면 NavMeshAgent에...
이번 목표 액션 구조 정리, AI 기본 이동 구조 정리 일단 문제였던 애니메이션 델리게이트 부분에서 무기를 장착할 때 보다는 무기를 WeaponComponent에 넣었을 때 즉 무기를 획득했을 때 구독을 하기로 하자 그리고 게임 내에서 UI로 무기를 교체할 것인지 , 주어서 교체할 것인지 생각해봐야한다. 내가 원하는 최종 결과물은 AI에게도 총이 있...
이번 목표 총 오토모드 오토모드 구조 오토모드를 위해 좌클릭 누름/해제를 구분해야 한다. context.performed와 context.canceled를 이용해 WeaponComponent의 On/Off 경로를 명확히 나눈다. public void OnFire(InputAction.CallbackContext context) { ...
이번 목표 TODO 리스트에 있는 감속과 애니메이션 회전을 마무리하고자한다. 감속, 방향전환 문제 현상: 진행 방향에서 반대키 입력 시 감속 후 역방향으로 넘어가며 어색함이 느껴진다. 멈춤 애니메이션을 추가하거나 게임성 위주로 즉시 반전 중 하나를 선택할 수 있다. 전자는 콘텐츠 필요, 후자는 제어 로직으로 해결 가능하다. 문제는 MoveToward...
이번 목표 총 히트스캔 구현 , 히트스캔과 비슷한 목적지에 총알발사 , 줌자세 추가 (줌상태에서만 총알 발사) 줌자세(Aiming) 애니메이션 줌 애니메이션은 Idle 형태만 있어 상체 분리 블렌딩이 필요했다. 언리얼의 Layered Blend Per Bone 에 대응해 유니티에서는 Avatar Mask + Animation Layer 조합을 사용했...
이번 목표 라이플을 들었을 때 다른 애님트리로 넘어가 작동하기 , 라이플 총알 구현 애니메이션 Idle 상태에서 Rifle로 넘어가는 조건을 Enum으로 하려했는데 유니티에는 enum 타입이 없으니 Int파라미터로 만들어 하거나 StringToHash 둘 중 하나를 선택해야 할 거 같다. 간단하게 Int 타입으로 변환하여 진행할 생각이다. 일단 St...