Game!

All (93)

  1. 2022.11.12 [C] C 스타일 파일입출력

    C 스타일 : 자료형 하나씩 저정해도 되지만 보통 구조체로 저장한다. > 한 번에 데이터를 모아서 저장할 수 있어서 C 스타일 파일 입출력을 사용하려면 아래 헤더파일을 추가해야한다 1. 파일에 쓰기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include using namespace std; #define MAX_NAME_LENGTH = 32; struct SAVE_DATA { char arr[MAX_NAME_LENGTH]; int iHp; } void SaveData() { FILE* pWriteFile = nullptr; // 파일 열기 // b : 바이너리 fopen_s..

  2. 2022.10.23 [C] 문자열 상수

    char *test = "abcdef"; 와 char test[] = "abcdef";의 차이점 두 가지의 차이를 이야기 하기에 앞서서 "abcdef"에 대해 짚고 넘어갑시다. "abcdef"란 코드는 컴퓨터가 프로그램을 메모리에 로드할 때 읽기 전용 메모리에 로드되는 문자열 상수입니다. 문자열 상수의 주소란 말이죠. 참고로 읽기 전용 메모리에는 프로그램 코드 라던가 상수가 로드 됩니다. 그럼 돌아와서 문자열 상수 주소를 char *test인 포인터에 넣느냐 아니면 char test[]인 배열에 넣느냐가 차이점 이군요. 둘의 차이는 다음과 같습니다. 1. char *test = "abcdef"; - 포인터에 문자열 상수를 할당합니다. 따라서 문자열을 참조 할 수는 있지만 값을 바꾸지는 못합니다. 문자열이..

  3. 2022.06.20 [UE] UINTERFACE 와 FORCEINLINE

    UINTERFACEC++ 인터페이스인데 언리얼 오브젝트임uclass 매크로를 사용 등.. cdo나 클래스 계층 정보를 가지고 있음   FORCEINLINE길지않은 함수일 경우 인라인으로 써주는게 좋다 ( return bool 같은 한 줄짜리 함수 )크거나 복잡한 태스크를 수행하는 함수의 경우함수 호출의 오버헤드는.. 함수가 실행되는데 걸리는 시간과 비교할 때 중요하지 않다.그러나, 일반적으로 사용하는 작은 함수의 경우함수 호출에 필요한 시간이 실제로 함수 코드를 실행하는데 필요한 시간보다 훨씬 많은 경우가 있다( 배보다 배꼽이 큰 경우 )이로 인해 성능 저하가 일어날 수 있음인라인 함수로 만들게 되면.. 함수 호출이 자체의 내용이 복사본으로 대체되어 함수 오버헤드가 발생하지 않는다.( 함수 내용 자체로 ..

  4. 2022.06.20 [UE] 애니메이션 관련 정리

    BS 는 두 가지가 있다블렌드 스페이스 1D> 분할 기준(축)이 1개블렌드 스페이스 > 분할 기준(축)이 2개 USkeletalMeshComponent> BP 에 붙는 스켈레탈 메시 컴포넌트.> 컴포넌트 내에서 스켈레탈 메시를 적용할 수 있음- BP 로 만들지 않고, C++ 클래스만으로도 사용가능.( C++ 클래스 내부에서만 사용할 경우.. 시각적으로만 안보이는 것 뿐이지, 클래스 내부에 선언된 컴포넌트를 통해 스켈레탈 메시를 적용할 수 있는 거임 )USkeletalMesh> 진짜 스켈레탈 메시 Animation/AnimMontage.h> UAnimMontage 를 가지고 있는 헤더파일UAnimMontage> 애니메이션 몽타주 클래스 이름> 에디터에서는 [메뉴] 애니메이션 ▷ 애님몽타주 생성애니메이션 몽..

  5. 2022.05.30 [UE] 파티클 관련 정리

    ParticleSystem : 실제 파티클 에셋 정보ParticleSystemComponent : 오브젝트에 컴포넌트로 붙는 파티클 정보    ParticleSystemComponent:: SetTemplate > 사용할 파티클을 변경한다  ParticleSystemComponent:: ResetParticles> 파티클 출력 상태를 초기화시킨다

  6. 2022.05.30 [UE] 콜리전 관련 정리

    콜리전은 두 가지로 나눠지며 각각 설정이 가능하다 1. 오브젝트 > 보통 콜리전이 있는 액터를 지칭한다. 일반적인 충돌을 의미 2. 트레이스 (유니티의 RayCast) > Trace : 추적. 직선을 쏴서 무엇이 존재하는지 확인하는 방법이다. 여기에 대한 자세한 내용은 언리얼 문서에 잘 정리되어 있다. https://www.unrealengine.com/ko/blog/collision-filtering 콜리전의 두 가지 타입은 각각 다른 유형의 쿼리 타입을 사용한다. cf. 쿼리 : 닿자마자 충돌로 처리되는 정보들 충돌 관련 함수를 사용할 때 오브젝트를 기준으로 체크할 경우 오브젝트 타입 사용 트레이스를 기준으로 체크할 경우 트레이스 타입 사용 이 타입의 Enum 들은.. 프로젝트 셋팅 -> 콜리전 ->..

  7. 2022.05.26 [UE] UProperty / UFunction

    언리얼 오브젝트 변수 지정 : UPROPERTY( ) EditAnywhere > 어디에서든 디테일 패널에서 확인하고 수정 가능 ( BP 에디터, 레벨에 배치된 거 상관 없음 ) EditInstanceOnly > 레벨에 배치된 (인스턴스된) 객체만 디테일 패널에서 확인하고 수정 가능 EditDefaultOnly > BP 에디터 내부의 디테일 패널에서만 확인하고 수정 가능 VisibleAnyWhere > 수정 불가능. 어디에서든 디테일 패널에서 확인 가능 ( BP 에디터, 레벨에 배치된 거 상관 없음 ) VisibleInstanceOnly > 수정 불가능. 레벨에 배치된 (인스턴스된) 객체만 디테일 패널에서 확인 가능 VisibleDefaultOnly > 수정 불가능. BP 에디터 내부의 디테일 패널에서만 ..

  8. 2022.05.09 [UE] USceneComponent 와 PrimitiveComponent

    UActorComponent 씬에 올릴 수 있는 것들은 모두 액터가 기반이 되어야하며 이 액터들은 각각 다른 유형의 컴포넌트들을 가지게 되는데, 이 모든 컴포넌트에 대한 베이스 클래스이다. 언리얼 엔진에서는 1. 트랜스폼 정보를 가진 액터 컴포넌트를 Scene Component 라고 한다 2. 렌더링 정보를 가진 액터 컴포넌트를 Primitive Component 라고 한다 USceneComponent Transform 정보를 가진다. Actor 또는 USceneComponent 들의 Hierarchical Attachment - 부착을 지원한다. ( 하이어라키 계층 구조를 지원한다 ) 렌더링과 자체 콜리전을 가지지 않는다. 더보기 예를 들어, BP 에 Box 콜리전과 Text 렌더링을 한다고 하자. 사..

  9. 2022.05.09 [UE] 델리게이트와 이벤트

    Unreal C++ 함수 콜백 종류 델리게이트 다이나믹 델리게이트 이벤트 델리게이트는 외부(C++)에서 연결해서 사용 가능 다이나믹 델리게이트는 BP와 연결하기 위해 사용 가능 이벤트는 자신의 클래스에 속해서만 사용 가능 델리게이트 C++ 에서만 사용할 수 있는 콜백 함수 2개의 타입이 있다 ( 싱글 / 멀티 ) 바인딩할 경우, 인자랑 타입이 똑같아야한다. 더보기 델리게이트 생성 싱글 DECLARE_DELEGATE DECLARE_DELEGATE_OneParam DECLARE_DELEGATE_TwoParams DECLARE_DELEGATE_Params DECLARE_DELEGATE_RetVal DECLARE_DELEGATE_RetVal_OneParam ... 멀티 위의 표준과 동일하다. 단, 멀티 표기를 ..

  10. 2022.05.08 [C++] 코드 위치나 정보를 받아오는 매크로 들

    디버깅이 어려운 환경에서는 보통 로그를 찍게 되는데 이때 로그에서 코드의 정보를 출력해주는 매크로를 사용해서 추가 정보를 출력할 수 있다. 표준 C++ 에서 제공 __FUNCTION__ 매크로 현재 함수의 이름을 받아온다 C++ 에서는 함수마다 내부적으로 __func__ 라는 로컬 변수가 정의돼있다. 이 변수는 현재 함수의 이름을 저장하고 있다. __LINE__ 매크로 현재 스크립트의 줄번호를 받아온다 __FILE__ 매크로 현재 소스코드의 파일을 받아온다. EX. CGlobal.h... CPlayer.cpp ... 단, 파일 이름만 출력하지 않고 파일의 전체 경로를 출력하게 된다. ▶ C:\CppProject1\TestGame\Source\MyGame\CPlayer.cpp