초보 코린이의 성장 일지

UE4 Unreal C++ 기본 연습 및 색 변경 본문

언리얼

UE4 Unreal C++ 기본 연습 및 색 변경

코오린이 2023. 2. 28. 15:03

1. 위 C01 Property에 보면 A, C는 명시되어 있지만 B는 등장하지 않는다.

2. 내부적으로 들어가면 B가 등장한다.

3. 기본값을 지정하지 않으면, 들어간 값대로 적용되고, 만약 기본값을 지정해놓으면 객체가 다 그 값을 공유한다.

 

Anywhere = 값을 공통으로도 사용 가능하고, 변경도 가능하다. (나머지는 전부 여기서 사용)

DefaultsOnly = 자료형에서 지정한 값을 모두 기본으로 공유한다. (Actor에서만 사용가능)

InstanceOnly = 객체화 했을때만, 값을 변경할 수 있다. (Actor에서만 사용가능)

1. A, B, C 출력을 값을 보기 위한 선언.

2. 출력 로그로 값을 볼 수 있다.

 

1. 시간이 흘러가는걸 볼 수 있다. 값 확인 용으로 사용하면 좋다

 

1. 접근지정자로 선언 

2. Actor이 3개 맵에 설치되어있으므로, 3개 객체에 10 + 10 결과값 확인

 

ReadOnly = Get만 나온다

ReadWrite = Set, Get 다 사용가능

 

1. Mesh쪽을 다뤄 볼 것이다

2. Actor로 Mesh 생성.

Mesh.h
Mesh.cpp
Mesh.cpp

1. Mesh 전체 코드.

 

1.  컴포넌트를 추가 할때는 VisibleAnywhere로 선언.

2. UObject 이하로 상속 받은건 무조건 동적할당 해야 한다라고 생각하면 된다. 그래서 앞에 U가 붙었다.

3. 전방선언 class는 Header 위에 선언해주거나, 바로 앞에 선언해준다.

4. 전방선언을 했다면 무조건 Header를 포함시켜줘야 한다. 그래야 자료형 확정이 된다. 

 

 

1. 할당해줬기 때문에 Null 이였던, DefaultSceneRoot가 사라졌다.

 

1. 일일히 다 작업하기에는 너무 복잡하므로, 템플릿만 사용 할 수 있는 .h 를 하나 생성해주고 선언해 놓을 것이다.

2. UObject, generated.h 선언도 없으므로, 이 클래스는 직렬화가 안되기때문에, 내부적으로 사용하므로, 나타나지 않는다. 

3. 언리얼에서는 class와 이름 사이에 API가 꼭 들어가야한다.

동적할당 한 상태
템플릿으로 변경한 상태

1. 위에 동적할당을 템플릿으로 변경하여 사용하기 쉽도록 만들어 놨다.

1. 미리 컴파일된 헤더처럼 우리가 사용할 기능들을 모아놓을 헤더를 하나 생성

2. 앞으로 cpp에서는 맨위에 Global이 선언되어야 한다.

1. Actor만들때 만들어진 템플릿 수정을 해줘야한다.

엔진 폴더 -> 버전 -> 다시 엔진 폴더 -> 컨텐츠 폴더 -> 에디터 -> Templates에서 수정 후 저장

2. 상단에 "Global.h" 선언 이제 다음에 만들어질때 포함되서 생성된다.

 

1. Materials를 만들때 코드를 선언해서 만드는것과 인스턴스가 나눠져있다.

2. C++에서는 Materials/MaterialInstanceConstant.h를 사용해서 다뤄야한다.

3. Materials가 게임 실행 동적 런타임시에는 상수로 변경이 불가능 하다는 뜻이다.

템플릿 사용 전
템플릿 사용 후

1. 성생해 놓은 Mesh에 에셋을 입히는 단계. 

1. Actor 모양이였던 Mesh가 이제 큐브 모양으로 변경

 

1. 타겟이 있는 함수는 Actor내에 속해있는 객체이며, 타겟이 없는 함수는 다 Static 전역 함수를 나타낸다.

2. 전역함수를 모아 놓은 라이브러리가 Kismet Library이다.

 

1. 전역함수를 사용하기 위해 Kismet Library 선언.

 

1. 이름 그대로 Timer함수 선언

 

1. 색이 랜덤으로 바뀌도록 선언

 

1. 만들어 놓은 Mesh 맵에 올려 놓으면 색이 랜덤으로 변화되는걸 볼 수 있다.

 

https://www.youtube.com/watch?v=1jYwLIB64i0 

 

- C++로 다룬다는게 어려운거 같다.

Comments