본문 바로가기

UE5

(28)
09-03 (프로퍼티 meta = (MakeEditWidget = true), 생성자의 사용 방식, 이벤트와 함수) 프로퍼티 meta = (MakeEditWidget = true)레벨 상에서 표시 할 수 있도록 만들어준다. 예로 벡터를 담는 배열이 있을 때 이 클래스를 레벨에 배치하고 배열을 직접 추가해주면 레벨에 벡터의 위치를 확인 가능하다.  생성자의 사용 방식생성자는 레벨에 배치할 때에도 처음 에디터를 킬 때도 호출된다.따라서 특정 위치나 액터를 찾아서 배열에 넣는 함수를 만들고 생성자에서 호출 해주면레벨에 배치된 특정 액터나 위치를 찾는 코드를 따라 원하는 객체등을 배열에 넣어줄수있다.이러면 레벨에 몬스터를 하나씩 배치한걸 다시 몬스터 스포너에 넣어줄 필요가 없다. 몬스터 스포너르르 레벨에 배치할때 레벨에 존재하는 몬스터들이 알아서 스포너에 들어간다. BlueprintNativeEventBlueprintImpl..
24 - 09 - 02 (IsValid()와 nullptr, GetName()) IsValid()와 nullptr 의 차이nullptr 은 메모리의 특정 주소가 0 인지 확인한다 IsValid() 는 특정 메모리 주소가 유효한지 확인한다.이것은 IsValid 는 메모리의 특정 주소에 쓰레기 값이 들어있는지까지 확인한다는 것이다. 따라서 본인 혼자서 혹은 한 번만 사용되는 포인터는 nullptr 여러 곳에서 해당 포인터를 참조 한다면 IsValid() 를 이용하여 댕글링 포인터나 쓰레기 값까지 체킹하도록 해준다. GetName 을 이용하고 contains 로 특정 클래스 확인이 가능하다IsA 를 이용해서도 특정 클래스 확인이 가능하다.Cast 를 통해서도 클래스 확인 가능하다.
08- 30 FName, FString, FText 그 외 FName가볍기 때문에 검색할 때 사용을 많이 한다. FTextUI 표현을 할 때 사용. 현지화 할 때 쉽기 때문에 사용한다. 위젯 등도 FText 으로 바꾸어 보여진다.  FString함수등의 기능이 많이 있어서 로직 짤 때 유용하다는 장점이 있다. 매크로실행핀을 여러개 둘 수 있어서 흐름제어에서 많이 사용한다. 함수누가 사용하는지 안다. ( 지역 함수 )    누구든 사용가능하다 ( 전역 함수 )
24 - 08 - 23 (UPROPERTY, ACTOR 라이프 사이클, 모듈) UPROPERTY리플렉션이 가능하도록 만든다. 에디터와 상호작용이 가능해진다. 메타 지정자를 추가하여 여러 기능을 추가할 수 있다. https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers?application_version=4.27   ACTOR 라이프 사이클  블루프린트 함수 라이브러리이름에는 블루프린트가 들어가지만 c++ 에서도 사용가능하다.전역으로 함수를 만들어 모든 곳에서 사용가능하도록 설계한다.예로 특정 Controller 등을 가져올 때 이 기능을 사용할 수 있다. 아래는 특정 Actor 가 존재한다면 PlayerController 를 가져오겠다는 전역함수이다... 헤더#pragma once#include ..
24 - 08 - 22 (CPP 시작) class CODEPROJECT_API UShootingGameInstance : public UGameInstanceCODEPROJECT_API : 모듈의 이름과 API를 알려준다. 다른 모듈에 참조되었을때  게임 인스턴스의 Init 함수 Init 라이프 사이클 : 생성자보다 느리고 BeginPlay() 보다 빠르다. 한글 로그를 띄우고 싶다면? 다른 이름으로 저장해서 한글을 사용하는 변수가 있는 파일의 Encoding 값을 Korea 에서 유니코드로 변경한다.
24 - 08 - 19 (데이터 테이블, 구조체, 고스트) 구조체를 만들어 스탯을 관리한다. 이제 각각의 고스트들의 스탯을 데이터 테이블에서 정해준다.     고스트 클래스에서 각각의 고스트 인덱스에 맞는 스탯을 가져와 셋팅해준다.   플레이어의 총알에서 해당 데이터를 가지고 스코어를 올려주거나 hitcount 를 줄여서 적을 처치하도록 만든다.      bool 값에 따라 캐릭터의 공격과 움직임을 제어한다. Enum 열거형을 하나 만들고  상태 값들을 설정해준다.  변수 추가하고  Enum 을 이용해서 Slow 디버프가 중첩되지 않도록 만든다.
24 - 08 - 18 (인터페이스, CC, 적 투사체) 터렛의 투사체를 상속 하여 여러 투사체를 만듬. 파생 투사체 중에 플레이어에게 CC 를 거는 투사체를 만든다.    BulletAction 에 HitActor 함수를 만들어 부딪히는 적들을 확인한다.CC 인터페이스에 적용할 CC함수를 생성한다.   불렛에 맞았을때 맞은 액터가 disarm slow 를 재정의했다면 적용한다.  disarm slow 는 2초 동안 유지하도록 디버프 설정
24 - 08 - 14 (게임 인스턴스, 캐릭터 선택, 터렛) 게임 인스턴스 게임의 전체 수명 주기를 관리하는 객체로, 게임이 실행되는 동안 한 번만 생성되고 종료 시 파괴 주요 기능 및 개념전역 데이터 관리: GameInstance는 플레이어 상태, 게임 설정, 글로벌 변수 등을 저장할 수 있는 공간을 제공합니다. 예를 들어, 플레이어의 프로그레스, 점수, 설정 등을 저장해 두고 레벨이 바뀌어도 그 데이터를 유지할 수 있습니다.레벨 간 데이터 전송: 일반적으로 각 레벨이 로드되면 레벨에 속한 객체들은 초기화되지만, GameInstance는 유지됩니다. 이를 통해 한 레벨에서 다른 레벨로 데이터를 안전하게 전송할 수 있습니다.지속성 및 상태 유지: GameInstance는 게임이 실행되는 동안 살아있기 때문에, 게임의 전체적인 상태나 설정을 유지하는 데 매우 유용합..