분류 전체보기 264

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (36) 인터페이스를 통한 레벨 적용하기

이번 포스트에는 게임에 등장하는 캐릭터별로 레벨을 설정하기 위한 인터페이스를 만들고이를 실제로 적용해보도록 하겠습니다. 스탯을 결정짓는 레벨의 관리는플레이어의 경우, PlayerState에서 관리하고몬스터의 경우 Enemy에서 관리하도록 하겠습니다. 1) CombatInterface// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/Interface.h"#include "CombatInterface.generated.h"// This class does not need to be modified.UINTERFACE(Mini..

2D RPG - (15 - 9) 단검 투척 스킬 구현_09

이번 포스트에서는 단검에 적중당한 적을 약간 경직시키도록 로직을 추가하겠습니다.또한 코드의 구조를 일부 개선하고 검이 너무 멀리 날아간 경우 파괴하는 로직을 추가하겠습니다.위의 과정을 통해 단검 투척 스킬 구현을 마무리하겠습니다. 1) 멀리 날아간 단검 파괴 - SkillThrowingSwordController  투척될 단검이 설정된 후 7초 뒤에 Invoke 함수를 통해DestroySword 메소드를 호출하여 검을 파괴하겠습니다. 2) 단검에 적중당한 적 경직 - EnemyControllerpublic class EnemyController : BaseCharacterController{ [Header("Move Info")] . . . private float _defaultMoveSpe..

2D RPG - (15 - 8) 단검 투척 스킬 구현_08

이번 포스트에서는 단검의 여러 상태 중에서 회전하는 단검을 구현해보도록 하겠습니다.추가적으로 튕기는 단검에서 단검이 튕겨질 때 적에게 피해를 주지 않던 현상도 수정하겠습니다. 1) 문제 수정 - SkillThrowingSwordController 날라가는 단검과 캐싱된 적의 거리가 0.1보다 작다면캐싱된 적의 EnemyController 컴포넌트를 가져와 DoGetDamage 함수를 호출함으로써문제를 해결할 수 있습니다. 2) 회전하는 단검 - SkillThrowingSwordpublic class SkillThrowingSword : SkillTemplate{ . . . [Header("Spint Info")] [SerializeField] private int _maxTrave..

2D RPG - (15 - 7) 단검 투척 스킬 구현_07

이번 포스트에서는 투척되는 단검에 새롭게 상태를 추가하고 기존의 단검을상태에 따라 다르게 동작하도록 코드를 재구성해보겠습니다. 1) SkillThrowingSwordpublic enum SwordType{ Regular, Bounce, Pierce, Spin}public class SkillThrowingSword : SkillTemplate{ public SwordType _swordType = SwordType.Regular; . . . [Header("Pierce Info")] [SerializeField] private int _pierceAmount; [SerializeField] private float _pierceGravity; ..

SQL (5) - CASE

이번 포스트에서는 다른 언어의 Switch - Case와 비슷한 SQL의 CASE 함수에 대해 알아보겠습니다. 1) 사용법일반적인 Switch - Case의 문법은 다음과 같이 작성합니다.swtich(대상) case 조건1: 로직 break; case 조건2: 로직 break; default: 로직 break; 기본적인 로직은 대상에 한해서 case의 조건에 맞다면 해당하는 case의 로직을 수행하고모든 case의 조건에 맞지 않는 대상은 default의 로직을 수행하게 되어 있습니다. 이제 SQL에서의 CASE 함수의 문법을 살펴보겠습니다.SELECT *, CASE 대상 WHEN 조건 THEN 로직 ELSE 로직 END AS 속성이름FROM..

데이터베이스 2025.02.05

SQL (4) - DATETIME

이번 포스트에서는 SQL에서 시간을 나타내는 자료형인 DATETIME에 대해 알아보겠습니다. 1) 시간 자료형에 대해 간단하게 알아보기시간의 경우 매우 정밀하게 동작해야 하므로 기존의 자료형을 사용하기보다는새로운 자료형을 만들어 사용하는 것이 훨씬 더 효율적입니다.SQL에서 사용가능한 시간자료형을 간단하게 알아보면 다음과 같습니다.DATE : 연/월/일TIME : 시/분/초DATETIME : 연/월/일/시/분/초또한 시간 자료형을 사용하는 경우,일정한 형식을 통해 시간의 변환이 이뤄지기 때문에 일정한 형식을 만들어 사용해야 합니다.사용가능한 형식은 다음과 같습니다.YYYY/MM/DDYYYYMMDD hh:mm:ss.nnn 2) 문자열 자료형을 시간 자료형으로 변환하기-- 문자열 자료형을 시간 자료형으로 변..

데이터베이스 2025.02.05

2D RPG - (15 - 6) 단검 투척 스킬 구현_06

이번 포스트에서는 단검이 적에게 적중하면 인접한 다른 적을 향해 단검이 튕겨나가도록 만들어보겠습니다. 1) SkillThrowingSwordControllerpublic class SkillThrowingSwordController : MonoBehaviour{ . . . // Bounce Info public bool _isBouncing; public int _bounceAmount = 4; public float _bounceSpeed; public List _enemyTargets; private int _targetIndex; . . . private void Update() { . . . if (_isBounci..

2D RPG - (15 - 5) 단검 투척 스킬 구현_05

이번 포스트에서는 단검 투척 스킬을 개선하고 일부 버그를 수정하겠습니다.개선사항은 다음과 같습니다.단검을 조준하는 상태에서 커서에 따라 플레이어를 회전단검이 회수될 때 회수되는 단검을 향해 플레이어를 회전기존의 ClearTheSword 함수 이름을 CatchTheSword로 변경회수 애니메이션의 특정 프레임에서 CatchState 탈출단검이 회수될 때 살짝 밀리게끔 수정단검을 던진 직후와 회수 직후 일시적으로 다른 상태로의 전환을 막음버그 수정사항은 다음과 같습니다.단검이 어딘가에 부딪히기 전 회수하는 경우, RigidBody가 무시되는 현상단검이 회수될 때 적에게 부딪히는 경우, 부딪힌 것으로 판정되는 현상달리는 상태에서 단검 조준시 움직일 수 있는 현상각각의 개선 사항과 버그 수정사항에 번호를 붙여 ..