ue4 动态增删查改 actor,bp
ue4.17
增
特殊说明:创建bp时,如果bp上随手绑一个cube,那么生成到场景的actor只执行构造不执行beginPlay,原因未知
ATPlayerPawn是c++类
直接动态创建actor
UWorld* const World = GetWorld();
FVector v = FVector(0, 0, 0);
FRotator r = FRotator(0, 0, 0);
if (World)
{
ATPlayerPawn* Player = World->SpawnActor<ATPlayerPawn>(v, r);
}
建立一个名为TPlayerPawnBP的蓝图,继承ATPlayerPawn
动态创建方法,3方法基本类似,随便记录下
1 可在运行时使用
FStringAssetReference asset = "Blueprint'/Game/bp/TPlayerPawnBP.TPlayerPawnBP'";
UObject* itemObj = asset.ResolveObject();
UBlueprint* gen = Cast<UBlueprint>(itemObj);
if (gen != NULL)
{
ATPlayerPawn* spawnActor = GetWorld()->SpawnActor<ATPlayerPawn>(gen->GeneratedClass);
}
2 可在运行时使用
UObject* loadObj = StaticLoadObject(UBlueprint::StaticClass(), NULL, TEXT("Blueprint'/Game/bp/TPlayerPawnBP.TPlayerPawnBP'"));
if (loadObj != nullptr)
{
	UBlueprint* ubp = Cast<UBlueprint>(loadObj);
	AActor* spawnActor = GetWorld()->SpawnActor<AActor>(ubp->GeneratedClass);
}
3 先保存蓝图类,然后运行时创建
.h中定义
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "N")
TSubclassOf<ATPlayerPawn> doorBPClass;
.cpp构造中
static ConstructorHelpers::FClassFinder<ATPlayerPawn> doorBPClassFinder(TEXT("/Game/bp/TPlayerPawnBP"));
if (doorBPClassFinder.Class != nullptr)
{
	UE_LOG(TLog, Warning, TEXT("NMgrActor Construct doorBP!=null"));
	doorBPClass = doorBPClassFinder.Class;
}
.cpp BeginPlay中
UWorld* const World = GetWorld();
if (World)
{
World->SpawnActor<ATPlayerPawn>(doorBPClass);
}
4 运行时创建,大体思路都一样,只要找到bp类就行,注意这个路径有个_C
TSubclassOf<ATPlayerPawn> TS = LoadClass<ATPlayerPawn>(NULL,TEXT("Blueprint'/Game/bp/TPlayerPawnBP.TPlayerPawnBP_C'"));
GetWorld()->SpawnActor<ATPlayerPawn>(TS);												
											ue4 动态增删查改 actor,bp的更多相关文章
- ASP.NET动态的网页增删查改
		
动态页面的增删查改,不多说了,直接上代码 跟前面的一般处理程序一样我上用的同一套三层,只是UI层的东西不一样,在纠结着要不要重新在上一次以前上过的代码: 纠结来纠结去,最后我觉得还上上吧,毕竟不上为我 ...
 - 4.在MVC中使用仓储模式进行增删查改
		
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
 - 一套手写ajax加一般处理程序的增删查改
		
倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...
 - 极极极极极简的的增删查改(CRUD)解决方案
		
去年这个时候写过一篇全自动数据表格的文章http://www.cnblogs.com/liuyh/p/5747331.html.文章对自己写的一个js组件做了个概述,很多人把它当作了一款功能相似的纯前 ...
 - java实现简单的数据库的增删查改,并布局交互界面
		
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
 - 基于.net的分布式系统限流组件   C# DataGridView绑定List对象时,利用BindingList来实现增删查改   .net中ThreadPool与Task的认识总结  C# 排序技术研究与对比  基于.net的通用内存缓存模型组件  Scala学习笔记:重要语法特性
		
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
 - 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
		
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
 - 3.EF 6.0 Code-First实现增删查改
		
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
 - 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
		
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
 
随机推荐
- SAP-财务知识点
			
[转自 http://blog.itpub.net/195776/viewspace-1023912/] SAP FI/CO Reading RepositorySAP财务成本知识库 目 录前言.一. ...
 - Java线程池的配置
			
1.ThreadPoolExecutor的重要参数 1.corePoolSize:核心线程数 * 核心线程会一直存活,及时没有任务需要执行 * 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先 ...
 - 如何修改硬盘挂载的名字LABEL
			
➜ ~ df -h Filesystem Size Used Avail Use% Mounted on/dev/sda2 114G 97G 12G 90% /media/brian/4ef34b75 ...
 - 模型层的Meta选项详解
			
一 . 模型层的Meta选项详解 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.便用方法及参数解释如下 : class Book(models.Model): ...
 - MVC+Ext.net零基础学习记录(五)
			
继MVC+Ext.net零基础学习记录(四),在后面我在既有的项目上又添加了一个子项目,还用前面提到的方法,进行主项目中引用DLL,然后子项目中生成事件中使用mkdir 进行拷贝 发现一个下午就总是报 ...
 - 磁卡ID卡IC卡的区别【转】
			
本文转载自:https://blog.csdn.net/trap94/article/details/50614451 今天被一个朋友问到ID卡和IC卡有什么区别,还真给问住了.虽然平时经常用到这些卡 ...
 - M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
			
本文转载自: M1卡说明及使用proxmark3破解方法 看了网上写的一些关于M1卡的文章,多数有些误导之嫌.首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8 ...
 - 分布式任务调度平台XXL-Job搭建
			
下载: https://github.com/xuxueli/xxl-job 下载 然后倒入到自己的工程里面 引入后: 导入数据:跑一边 导入: 修改: Window -->show view- ...
 - c++的最小整数和最大整数
			
#include<iostream> #include<cmath> using namespace std; int main() { //int -2147483648~2 ...
 - Dat.gui 使用教程
			
官方站点:http://workshop.chromeexperiments.com/examples/gui/ Dat.gui 使用教程:Dat.gui 是一个 GUI 组件,他可以为你的 demo ...