프로그래밍 480

GAS 어빌리티 시스템 컴포넌트-ASC

ASC가 GAS의 핵심 ASC가 GAS의 핵심이다.시스템과의 모든 상호작용을 처리하는 UActorComponent(UAbilitySystemComponent)이다.GameplayAbility를 사용하거나 Attribute를 가지거나,GameplayEffect를 받으려는 액터에는 반드시 ASC가 하나씩 붙어 있어야 한다.이러한 오브젝트는 모두 asc안에 존재하며, (AttributeSet에 의해 리플리케이드되는 ATTRIBUTE를 제외하고,)ASC에 의해 관리 및 리플리케이트된다. 이를 서브클래싱할 것을 권장하지만 필수는 아니다. ASC가 붙은 액터를 ASC의 OwnerActor라고 한다.그리고 ASC의 물리적 표현 액터를 AvatarActor라고 한다. MOBA 게임에서 단순한 AI미니언의 경우 처럼 ..

UE5/GAS 2025.05.09

마이크로 소프트에서 사용되는 _CLRCALL_OR_CDECL

_CLRCALL_OR_CDECL 는 으래 C++에서 쓰이는 endl을 타고 들어가면 볼 수 있는 매크로이다. enld을 타고 들어가면 다음과 같은 코드를 볼 수 있는데, 해당 코드에서 사용되는 basic_ostream의 클래스 크기는 1바이트이다.아마 c의 _Alignof나 C++의 alignof(T) 또는 alignas를 사용한 것 같다. alignas의 예시 alignas를 사용하지 않고 클래스 패딩 규칙에 따른 메모리 할당 크기 alignas를 사용하여 메모리 할당 크기를 사용자가 임의로 지정해 준 코드 해당 코드 전문class a{ int v[4];};// V의 메모리 풀 즉, 패딩을 내가 조절하는 것// alignas를 사용하면// V의 할당 될 메모리를 비트 단위로 내가 할당해..

Static 링크 :외부 링크와 내부 링크

static링크를 설명하기 전에 먼저C++에서 링크를 처리하는 과정을 이해할 필요가 있다.C++ 코드는 소스 파일 단위로 컴파일해서생성된 객체 파일을 링크 단계에서 서로 연결한다.함수나 글로벌(전역) 변수처럼C++ 소스 파일마다,정의된 이름은 외부 링크나 내부 링크를 통해 서로 연결된다.외부 링크외부 링크로 연결되면 다른 소스 파일에서 이름을 사용할 수 있다.내부 링크(= 정적 링크)내부 링크(=정적 링크)로 연결되면같은 파일에서만 사용할 수 있다.함수나 글로벌 변수는 기본적으로 외부 링크가 적용된다.하지만 선언문 앞에 static키워드가 붙이면내부 링크(=정적 링크)가 적용된다.익명 네임스페이스를 이용하여 내부 링크 적용앞서 말했듯이 내부 링크로 연결되면 같은 파일 내에서만 사용 가능하다고 했다.이는 ..

프로그래머스 LV.2 뒤에 있는 큰 수 찾기

GitHub https://github.com/kwon1232/CodingTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/154539.%E2%80%85%EB%92%A4%EC%97%90%E2%80%85%EC%9E%88%EB%8A%94%E2%80%85%ED%81%B0%E2%80%85%EC%88%98%E2%80%85%EC%B0%BE%EA%B8%B0#include #include #include #include using namespace std;vector solution(vector numbers) { vector answer(numbers.size(), -1); for (int i = numbers.size() - ..

[HDProject] UGUI Text Mesh Pro Style Applier 에디터 제작

Git : https://github.com/kwon1232/HDProject UGUI에서 Text Mesh Pro를 사용하다보면다른 아웃라인과 색깔을 적용하기 위해서는 매번 새로운 머티리얼을 할당해줘야 한다. Legacy Text 보다 이는 사용하기 번거롭기 때문에,동적으로 머티리얼을 할당하는 코드를 제작하여 해당 프로젝트에 적용하였다. 먼저 TMPStyleMainColor, TMPStyleOutline 클래스를 제작하였다. 해당 클래스들은 구조체처럼 서로 다른 변수의 모음을 담기 위해서 제작하였으며따라서 MonoBehaviour를 상속받지 아니한다. TMPTextStyle 내부에는컬러를 조정할 변수 모음인 TMPStyleMainColor 클래스를 인스턴스화 하여 맴버 변수로 삼고,아웃라인을 조정할 변..

[GAS] 언리얼 게임플레이 어빌리티 시스템 개요 (UE GAS Overview)

해당 GAS관련 학습 프로젝트를 진행하며 작성하는 글에서의사용자의 정의를 하고자한다. 해당 분류의 포스팅에서의 사용자의 의미는언리얼에서 GAS를 사용하여 제작하는 사용자를 일컫는 말로 정의하고자 한다. 언리얼 게임 플레이 어빌리티 시스템을 이용하면 다양한 아이템을 제작할 수 있다.또한조종하는 캐릭터가 다양한 공격과 스킬을 사용할 수 있다. 물론 GAS를 사용하지 않아도공격과 스킬, 다양한 아이템은 제작할 수 있다만 시스템을 사용해서 보다 효과적으로 구현해 본 경험을 가지는 게 나의 학습 목표이다. 자, 이제 왜 GAS를 사용하면 어떤 점이 좋은지공부하며 차차 알아가보자. 오늘 포스팅 목표는 다음과 같다. 게임플레이 어빌리티 시스템을 구성하는 주요 개념과 핵심 구성요소의 학습C++ 언어로 게임플레이 어빌..

UE5/GAS 2025.04.26

[백준 골드 5] 1456 거의 소수

Git Hub :https://github.com/kwon1232/CodingTest/tree/main/%EB%B0%B1%EC%A4%80/Gold/1456.%E2%80%85%EA%B1%B0%EC%9D%98%E2%80%85%EC%86%8C%EC%88%98arr size 정하는 법제곱의 범위를 생각하면 된다.x^n 이므로,제곱 벗기는 법은 루트 씌우기이다.즉, 루트 x^n의 값 까지가 최대 탐색 수가 maxSize가 된다.10^14 를 루트를 씌워준 뒤 +1의 값이 최대 배열의 수가 된다. 1. 이후 최대 배열의 수 까지 배열을 초기화해준다. 2. 초기화 이후에는 배수를 지워주는 반복문을 돌아준다. 3. 각각의 소수에 관해 소수를 N제곱한 값이 들어온maxRange보다 커질 때까지 반복문을 실행해준다. 4...

[HDProject]파티 초대 팝업창 포톤 연동 + 왜 포톤을 쓰나요?

Git : https://github.com/kwon1232/HDProject 필자가 Unity엔진에서 Photon 서버를 사용하는 주된 이유는 다음과 같다.빠른 개발 속도Photon Unity Networking(PUN) 패키지를 통해 복잡한 소켓 프로그래밍 없이도 멀티플레이어 기능을 즉시 구현할 수 있다. RPC 호출, 룸 생성·관리, 이벤트 전송 등 기본적인 네트워킹 기능을 API 한 줄로 처리할 수 있다.낮은 레이턴시 및 글로벌 리전 지원전 세계에 분산된 서버 리전을 통해 플레이어가 가장 가까운 리전에 접속하여 레이턴시를 최소화할 수 있다. 게이머의 지역에 따라 자동으로 최적의 리전을 선택하는 기능도 제공된다.매치메이킹·로비·룸 관리 기능이 제공자동 매치메이킹으로 플레이어를 간편하게 그룹화할 수 ..

[백준 실버2] 1541 잃어버린 괄호

GitHubhttps://github.com/kwon1232/CodingTest/tree/main/%EB%B0%B1%EC%A4%80/Silver/1541.%E2%80%85%EC%9E%83%EC%96%B4%EB%B2%84%EB%A6%B0%E2%80%85%EA%B4%84%ED%98%B8 CodingTest/백준/Silver/1541. 잃어버린 괄호 at main · kwon1232/CodingTestThis is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - kwon1232/CodingTestgithub.com #include #i..