Programming/C++ & Unreal

Programming/C++ & Unreal

언리얼 C++ Enum 블루프린트에서 쓰기

UENUM(BlueprintType) enum class ECrossHair : uint8 { CROSSHAIR_NoDetect UMETA(DisplayName="NoDetect"), CROSSHAIR_Item UMETA(DisplayName="Item"), CROSSHAIR_Ride UMETA(DisplayName="Ride") }; 이런식으로 클래스 헤더 위에서 선언하고 쓰면됨.

Programming/C++ & Unreal

언리얼 4.12 Visual studio 2015 Update 3 사용하기

command line argument number 261 does not match precompiled header가 뜬다면 https://forums.unrealengine.com/showthread.php?115833-Tutorial-Fix-for-the-Visual-Studio-Update-3-without-Source-Control 여기 따라하면됨!!!!!

Programming/C++ & Unreal

언리얼 기초 용어

Class -유니티의 프리팹 처럼 쓸 수 있는 액터 클래스와, 컴포넌트로 사용 할 수 있는 컴포넌트 클래스등등이 있다. Object -구성 요소라고 할 수 있는데, 여러가지 기능들을 가지고 있는 그냥 말그대로 오브젝트! 중요하지 않다.ㄴ 클래스엔 기본적인 내용들이 담겨있음. Actor -화면에 등장하는 오브젝트로, 유니티의 GameObject라고 생각하면 될듯.ㄴ 클래스엔 위치정보나 렌더링 이벤드 등이 담겨있음. Pawn - ★체스 말의 폰 처럼, 생각하며 움직이는 액터. 나의 캐릭터, 아군 캐릭터, 적군 캐릭터등이 있으며, 빙의(Possess)하여 제어한다.ㄴ 물리적인 동작들. Brush -모델링하기 귀찮을때 쓰거나, 쉽게 모양을 만들어 트리거로 사용할때 쓰는 듯? 정확힌 잘 모르것다. Level -유..

Programming/C++ & Unreal

언리얼 디버그 로그 출력 c++

GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Debug %f"), 123.0f)); // Debug 123.0 출력 GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Blue, TEXT(" Screen")); // 화면출력 UE_LOG(LogClass, Log, TEXT("Output")); // Debug 출력 참조: https://wiki.unrealengine.com/Logs,_Printing_Messages_To_Yourself_During_Runtime --- 더 편리한 방법을 아래 링크에 추가하였으니 사용바람.https://developstudy.tistory...

Programming/C++ & Unreal

언리얼 클래스 기초

유니티에서는 한 오브젝트에서 여러 컴포넌트와 소스들을 합쳐서 하나의 오브젝트를 구성할 수 있지만,언리얼에선, 하나의 오브젝트는 하나의 클래스를 가진다. (컴포넌트는 유니티와 동일하게 합칠 수 있다.) 그러므로, 오브젝트에서 다른 클래스를 가지려면 OverRide 하는 등의 방법을 써야할 것 같다.소스를 컴포넌트처럼 마구마구 조립하는 방법도 힘들 것 같다. * 언리얼은 하나의 클래스를 가지며, Override 하는등의 방법으로 다른 클래스를 사용해야한다.

Programming/C++ & Unreal

변수 언리얼 디테일창에 노출 시키기

UPROPERTY(EditAnywhere) int32 TotalDamage; // 기본형 -> 함수의 이름으로 카테고리가 생김 UPROPERTY(EditAnywhere, Category="Damage") int32 TotalDamage; // Damage라는 이름으로 카테고리가 생김 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage") int32 TotalDamage; // 블루프린터 전용자세한건 아래 링크를 참조.http://api.unrealengine.com/KOR/Programming/UnrealArchitecture/Reference/Properties/http://api.unrealengine.com/KOR/Programming/Tut..

Programming/C++ & Unreal

C++ 함수 포인터 추가

typedef void (*SYS_FUNC)(int); -> 리턴타입이 void이고 매개변수 타입이 (int)인 함수를 담을수있는 SYS_FUNC EX) void Test(int a); SYS_FUNC pfn = &Test; (*Test)(); typedef void (CPoint::*FP)(void); 이런식으로 클래스의 멤버함수도 접근가능 typedef void (CPoint::*FP)(void) const; FP func = &CPoint::Print; (pt.*func)(); 이런식으로..

Programming/C++ & Unreal

C++ 쓰레드

#include #include using namespace std; void Loop() { printf("1"); } void Loop2() { printf("2"); } int main() { thread l1(&Loop); thread l2(&Loop2); l1.join(); l2.join(); return 0; } 이렇게하면 Lpp2 -> Loop2가 호출됨.예전의 CreateThread 보다 엄청 쉬워진듯. !!

Programming/C++ & Unreal

함수 포인터 예제

void sayYeah(void) { printf("Yeah"); } void sayHo(void) { printf("Ho!!"); } int main() { void (*test)(void); test = sayHo; test(); test = sayYeah; test(); return 0; } // 함수들을 맵 같은곳에 넣어서 간단하게 사용하는 방법도 재미있을듯. 실제로 저 글을 작성한 후 기말고사 API 게임 때, JSP처럼 Map에다 함수를 넣어서 사용하는 미친 짓을 했었다..

Programming/C++ & Unreal

C++ 클래스에서 구조체 초기화

만약 Block이라는 클래스와, point라는 구조체가 둘다 초기화를 필요로 하고 있다면, MyPoint point; MyBlock(const float x, const float y, /* TODO LIST */) : point(x,y){ // TODO LIST } 이런식으로 초기화 해주면 된다.이렇게 구조체를 초기화 하지 않고, 생성자를 구현하면 에러가 나게 된다.

장형이
'Programming/C++ & Unreal' 카테고리의 글 목록 (3 Page)