虚幻Unreal - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(90评价)
价格: 3320.00元
关于SpawnActor函数的问题
杨与争发起了问答2018-11-24
1
回复
2878
浏览

这个问题搞了好久还是不行,贴出来让老师看看。

RPG项目中,在鼠标点击的地方Spawn一个CursorDecal。以下是我角色类中的部分代码:

头文件声明贴花组件的指针:

UPROPERTY(EditAnywhere, Category = Mouse)
		TSubclassOf<class ACursorDecal>  CursorDecal;

源文件中的包含情况:

#include "RPGBaseCharacter.h"
#include "Engine/Engine.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "GameFramework/PlayerController.h"
#include "RPGProject.h"
#include "Engine/World.h"
#include "Blueprint/AIBlueprintHelperLibrary.h"
#include "MainUserWidget.h"

构造函数中并没有给这个指针赋值,老师视频中是在外面蓝图中赋值的,不知道问题是不是出在这里。

下面是BindAction中绑定的一个函数,鼠标点击地面时,强制取消键盘控制,获取碰撞信息,生成一个贴花,角色基于寻路系统移动到碰撞点。

void ARPGBaseCharacter::OnDestinationClick()
{
	CancelMoveToDestination();
	bHasMouseMoveCommand = true;
	FHitResult HitResult;
	PC->GetHitResultUnderCursor(CursorTraceChannel, false, HitResult); //获取碰撞信息
	if (HitResult.bBlockingHit)
	{
		const UWorld* World = GetWorld();
		FActorSpawnParameters SpawnParam;
		SpawnParam.Owner = this;
		if (World)
		{
			UE_LOG(LogTemp, Warning, TEXT("Click!"));
			//World->SpawnActor<ACursorDecal>(CursorDecal, HitResult.Location, FRotator::ZeroRotator, SpawnParam);
			MoveToDestination(HitResult.ImpactPoint);
		}
	}
}

现在的问题出在我注释掉的那句代码,如果注释掉的话一切正常编译可以通过,可以取消移动以及寻路,打印的日志也能输出。取消注释的话编译报错。IDE给的错误提示画在World后面的指针引用符->上面,提示“没有与参数列表和对象匹配的重载函数”。

编辑器的报错是这样(没什么卵用):

Compiling game modules for hot reload
Building 3 actions with 8 processes...
  [1/3] RPGBaseCharacter.cpp
   D:\MyProjects\UE4Projects\RPGProject\Source\RPGProject\Private\RPGBaseCharacter.cpp(170) : error C2662: ??T *UWorld::SpawnActor<ACursorDecal>(UClass *,const FVector &,const FRotator &,const FActorSpawnParameters &)??: ???????this???????const UWorld????????UWorld &??
          with
          [
              T=ACursorDecal
          ]
  D:\MyProjects\UE4Projects\RPGProject\Source\RPGProject\Private\RPGBaseCharacter.cpp(170): note: ???????????
ERROR: UBT ERROR: Failed to produce item: D:\MyProjects\UE4Projects\RPGProject\Binaries\Win64\UE4Editor-RPGProject-2174.dll
       (see ../Programs/UnrealBuildTool/Log.txt for full exception trace)
Total build time: 3.03 seconds (Parallel executor: 0.00 seconds)
 

我的虚幻版本是4.20.3,希望老师给看看哪出问题了,我觉得参数没有写错啊,和视频中的一样。

所有回复
发表回复
你还没有登录,请先 登录或 注册!