C++ 为什么可以';t我创建一个TSubclassOf<&燃气轮机;要在SpawnActor()函数中使用?
我正在用UE4做一个激光标签游戏,使用TSubclassOf有很多困难 首先,我在LaserTacCharacter.h文件中声明LaserClass,如下所示。我还创建了一个名为OnFire()的函数,当玩家使用“Fire”动作绑定时会调用该函数C++ 为什么可以';t我创建一个TSubclassOf<&燃气轮机;要在SpawnActor()函数中使用?,c++,unreal-engine4,C++,Unreal Engine4,我正在用UE4做一个激光标签游戏,使用TSubclassOf有很多困难 首先,我在LaserTacCharacter.h文件中声明LaserClass,如下所示。我还创建了一个名为OnFire()的函数,当玩家使用“Fire”动作绑定时会调用该函数 #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "LaserTagCharacter.generated.h" UCLASS()
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "LaserTagCharacter.generated.h"
UCLASS()
class LASERTAG_API ALaserTagCharacter : public ACharacter
{
GENERATED_BODY()
public:
// Sets default values
ALaserTagCharacter();
UPROPERTY(VisibleAnywhere, Category = "Laser")
TSubclassOf<class ALaserTagLaser> LaserClass;
protected:
// Called when player fires a laser beam
void OnFire();
};
我很困惑,因为我清楚地指定了我想要的类。如果有人能提供一些见解,那就太棒了。您需要为LaserClass指定一个有效的类或子类。在BP中,可以在“详细信息”面板中进行设置。如果您不想在BP中这样使用它,并且总是想生成一个ALaserTagLaser,那么您可以给SpawnActor一个类引用
World->SpawnActor<ALaserTagLaser>(ALaserTagLaser::StaticClass(), GetActorLocation(), GetActorRotation(), SpawnParameters);
World->SpawnActor(ALaserTagLaser::StaticClass()、GetActorLocation()、GetActorRotation()、SpawnParameters);
您需要为LaserClass分配一个有效的类或子类。在BP中,可以在“详细信息”面板中进行设置。如果您不想在BP中这样使用它,并且总是想生成一个ALaserTagLaser,那么您可以给SpawnActor一个类引用
World->SpawnActor<ALaserTagLaser>(ALaserTagLaser::StaticClass(), GetActorLocation(), GetActorRotation(), SpawnParameters);
World->SpawnActor(ALaserTagLaser::StaticClass()、GetActorLocation()、GetActorRotation()、SpawnParameters);
可能LaserClass没有用指向正确的UClass的指针初始化?我如何初始化它?@rTaP确保ALaerTagCharacter
的每个实例都定义了一个LaserClass
。您的场景中可能有一个实例没有为LaserClass
设置值,也许LaserClass没有使用指向正确的类的指针初始化?如何初始化它?@rTaP确保ALaerTagCharacter
的每个实例都有一个定义的LaserClass
。场景中可能有一个实例,您尚未为其设置LaserClass
World->SpawnActor<ALaserTagLaser>(ALaserTagLaser::StaticClass(), GetActorLocation(), GetActorRotation(), SpawnParameters);