사건의 발단  :

//.h
TSubclassOf<AActorToSpawn> ActorToSpawnClass;

//.cpp
AActorToSpawn* tmp = GetWorld()->SpawnActor<AActorToSpawn>(ActorToSpawnClass,tmpLocation, tmpRotation);

 

world에서 SpawnActor메서드를 활용하기 위해, 코드를 작성하던 도중 에러가 발생하였다.

AActorToSpawn* ActorToSpawn이라고 코드를 작성했는데, 값이 들어가지 않는 현상이 생겼다.

 

그래서 찾아보니깐 SpawnActor의 첫번째 인자에서 클래스가 들어가야한다는것을 알게되었고,

이는 나의 무지함을 알려주는 계기가 되었다.

 

무언가 해결하려고 고심하는 과정에서 정말 많은 것들을 배우게 되는 것같다.

이래서 다들 경험이 중요하다고 이야기하시는것 같다.

 

다시 트러블로 돌아와서  이상하다? 분명 클래스인데 왜 안되지? 라고 생각해  

트러블슈팅을 하기 위해 계속 찾아보게 되었다.

 

이런 멍청한 과거의 나야 !!!! 클래스와 인스턴스는 구별할 줄 알아야지 !!!

잠시 코드를 보면 

class MyClass{

...

};


////
int main
{
	// 1. Myclass *MC;
    // 2. MC;

	return 0;
}

 

 

1번주석을 보면 MyClass*의 형태의 Mc 를 선언해줬는데 이것은 Class라는 틀을 찍어서 완성품을 생성한 것이다.

MC는 다시말해 인스턴스가 된다.

잠시 생각을 해보자면 2.Mc라고만 선언한다면 컴파일러는 이게 무슨 개소리지?하고 에러를 선사해준다.

 

다시 말해 우리가 MC라는 변수를 생성하기 위해 해당 클래스에 대한 메타데이터가 필요한 셈이다.

 

그러면 언리얼에서 왜 클래스에 대한 메타데이터가 필요한 것이며 그에 대한 방법은 무엇이 있을까?를..

 

여기에 적어놨습니다 후후 

https://bongsgame.tistory.com/49

 

 

 

 

'TIL' 카테고리의 다른 글

2025 / 02 / 10 TIL : 인터페이스와 추상클래스 (1/3)  (0) 2025.02.10
2025/02/06 TIL : Delegate  (0) 2025.02.06
2025 / 02 / 03 TIL : 코드 규칙  (0) 2025.02.03
2025/01/31 TIL : GameMode,Character  (0) 2025.01.31
2025 / 01/ 27 TIL :  (0) 2025.01.27

+ Recent posts