GAS_04_Combat Component
·
내배캠/GAS(Gameplay Ability System)
📌 CombatComponent 구조 설계 ✅ 베이스가 될 Pawn 확장 컴포넌트 생성 및 헬퍼 함수 구현ActorComponent를 상속 받은 "PawnExtensionComponentBase" C++ 클래스를 생성🔹 PawnExtensionComponentBase.h#pragma once#include "CoreMinimal.h"#include "Components/ActorComponent.h"#include "PawnExtensionComponentBase.generated.h"UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )class RPG_API UPawnExtensionComponentBase : public UActor..
GAS_03_무기 스폰 및 캐릭터 초기 능력 설정
·
내배캠/GAS(Gameplay Ability System)
📌 GAS 도입 이유구르기, 공격, 방어 등의 능력 사이의 우선순위 및 취소 관계를 간단하게 태그 기반으로 처리하기 위함이다.또한 Gameplay Effect와 Attribute, Gameplay Cue를 통합적으로 관리할 수 있고 조건 분기 없이 Tag 기반으로 로직을 처리해 코드 간결화 및 확장성을 향상시킬 수 있다.✅ GAS 구성 요소UAbilitySystemComponent: 능력 부여 및 처리를 담당하는 GAS의 핵심UAttributeSet: 체력, 공격력 등 게임 내 수치 정의GameplayEffect: 속성 변화, 상태 변화 등 처리GameplayTag: 조건 및 상태를 정의하는 키워드GameplayCue: VFX/SFX 등 시각/청각 연출 📌 캐릭터에 ASC(Ability System ..
GAS_02_기본 애니메이션
·
내배캠/GAS(Gameplay Ability System)
📌 Animation Instance 구조코드 분리와 재사용성을 높이기 위해, 공용/전용 애니메이션 로직을 명확히 구분하여 확장성과 유지보수를 개선하기 위한 구조 ✅ Locomotion 구현기본적인 Locomotion 이동에 필요한 로직 구현 🔹CharacterAnimInstance.h#pragma once#include "CoreMinimal.h"#include "AnimIstances/RPGBaseAnimInstance.h"#include "CharacterAnimInstance.generated.h"class ARPGBaseCharacter;class UCharacterMovementComponent;UCLASS()class RPG_API UCharacterAnimInstance : public..
Debug Helper 만들기
·
내배캠/Unreal Engine
📌 Debug Helper.hDebug Helper라는 클래스에 뷰포트와 로그 출력을 동시에 처리하는 함수를 만들어, 코드 중복을 줄이고 쉽게 디버깅을 할 수 있는 환경을 만드는 취지이다. ✅ 클래스 생성Public 폴더에 DebugHelper.h를 생성해준다. ✅ Debug 코드 작성#pragma oncenamespace Debug{ static void Print(const FString& Msg, const FColor& Color = FColor::MakeRandomColor(), int32 InKey = -1) { if (GEngine) { GEngine->AddOnScreenDebugMessage(InKey, 7.f, Color, Msg); UE_LOG(LogTemp, Warnin..
GAS_01_Input System
·
내배캠/GAS(Gameplay Ability System)
📌 Gameplay Ability System✅Gameplay Ability System이란?고도로 유연한 프레임워크:능력, 상태, 어트리뷰트를 구축하고 복잡한 상호작용과 시각적인 효과를 유연하게 관리할 수 있는 시스템손쉬운 구성과 재사용:GAS는 다양한 능력을 쉽게 구성하고 재사용 가능복잡한 능력을 구현 가능뛰어난 확장성과 유연성:확장성과 유연성이 뛰어나 다양한 게임 장르에 맞게 적용 가능멀티플레이 게임에서의 동기화 문제를 최소화 가능✅Gameplay Ability System을 사용하는 이유는?복잡한 Ability 관리:게임 내 캐릭터가 사용할 액티브, 패시브 능력을 체계적으로 관리활성화 및 비활성화, Cooldown 및 Cost를 쉽게 구현구조화된 Attribute Set:버프나 디버프를 유연하게..
큰 수 만들기 / Greedy
·
공부/Code Cata
https://school.programmers.co.kr/learn/courses/30/lessons/42883#qna number의 길이가 아주 큰 값이기 때문에, Greedy로 다음 수가 더 크다면 현재의 수를 지워나가는 방식으로 문제를 해결해야 했다.✅ Greedy 풀이#include #include using namespace std;string solution(string number, int k) { string answer = number; auto it = answer.begin(); while (k > 0) { if (it + 1 == answer.end() || *it while문의 if 조건문을 살펴보면, 우선 현재의 it이 가리키는 수보다 다음 인..