ue4 bp singleton】的更多相关文章

.h UCLASS(Blueprintable) class USingletonBP: public UObject { GENERATED_UCLASS_BODY() /** * Singleton access */ static USingletonBP* Get(); }; .cpp USingletonBP* USingletonBP::Get() { static USingletonBP* Singleton; if (!Singleton || !IsValid(Singlet…
概述 描述 保证一个类只有一个实例 提供一个访问该实例的全局节点,可以视为一个全局变量 仅在首次请求单例对象时对其进行初始化. 套路 将默认构造函数设为私有, 防止其他对象使用单例类的 new运算符. 新建一个静态构建方法作为构造函数. 使用场景 资源Manager,如 SoundManager.ParticeManager 等 线程池 多线程的单例模式,线程锁与双重检测 优缺点 优点 提供了对唯一实例的受控访问: 由于内存只存在一个对象,因此可节约资源 单例模式可以允许可变的数目的实例,使用单…
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…
前一篇已经确定神海类游戏原型的目标,首先要做的就是3C's(Character, Controls, Camera)的开发.   UE4的3C's的程序部分开发主要也就是基于他的GamePlay Framework来进行的,只要在C++里开发完成,通过蓝图类继承,把参数暴露给蓝图就可以由策划和美术师来直接使用了.鉴于UE4自带的Learn Project的示例代码里还是有相当多参考示例的,一些基础内容这里就跳过不讲了,具体的功能实现会在面涉及需求时详细说明.官方的介绍在这里. https://d…
Blueprint 编译概述   一.术语 Blueprint,像C++语言一下的,在游戏中使用前需要编译.当你在BP编辑器中,点击编译按钮时候,BP资源开始把属性和图例过程转换为一个类对象处理. 1. FKismetCompilerContext 此类用来做编译工作.每次编译就会产生一个新的实例.保存将编译的类和BP等. 2. FKismetFunctionContext 为一个函数保存信息,例如关系图引用,属性和产生UFunction. 3. FNodeHandlingFunctor 一个帮…
UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 USTRUCT(BlueprintType) struct FData_PageInfo { GENERATED_USTRUCT_BODY() FData_PageInfo(); FData_PageInfo(UChildActorComponent *parent_Com); void reIn…
Note:因为在切换关切时,会GC掉所有GameThread线程下的Object类,如果Static是UOBject 请调用AddToRoot函数  当然如果你的UObject子类Object是在自己的FRunnable 下创建的非RenderThread线程是不存在在OpenLevel时被GC的 UE4 无法在.H 定义C++ Static 成员: 要实现类似功能 可通过以下代码 或参考Singleton 单例设计模式: .Cpp文件 TMap<int32, FDataCpp_BaseGood…
本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开发. 顾名思义,数据表就是以有意义且有用的方式将各种相关的数据归类的表格, 其中,数据字段可以是任何有效的 UObject 属性,包括资产引用.在设计师将 CSV 文件导入数据表前,程序员必须创建行容器以指示引擎如何解释数据. 这些数据表包含了列名,这些列名…
UE中委托的使用很广泛,许多Event的触发都有对应的虚函数和委托,虚函数不用讲,只能在派生类中使用,而委托可以在别的类或者蓝图中使用,就应用范围而言,委托的使用更灵活.以AActor的 /** * Event when this actor overlaps another actor, for example a player walking into a trigger. * For events when objects have a blocking collision, for ex…
背景 在上篇中,实现了使用Houdini在UE4里根据地形过程生成植被的最基本的原型.并且支持把植被在UE4里Bake成使用的HierarchicalInstancedStaticMeshComponent的BP形式,一定程度上解决了植被渲染效率的问题.   但这种方法在开发效率和运行效率上都还有他的问题: 开发效率方面,这个方案并不支持UE4的Foliage Mode Editor: 每个植被区域都被Bake成BP的形式,场景美术规划阶段就需要格外小心防止区域之间穿插造成植被之间的叠加 当出现…
背景 之前在<Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析>一文中已经对AAA游戏中过程化植被的需求有了一定的定义,后续工作就是如何用Houdini开发功能需求定义的节点,以及对应UE4的Houdiin Engine来制定过程化管线.Houdini的HDA的开发放在过程化地形系统部分讲解,这里主要是讲解工作流程的制定.FC5的分析之前,也大致介绍了UE4的植被系统.这里再确定下植被系统工作流方面的需求: Houdini Input:UE4 要输入什么给Houdi…
背景     前一节里,解决了Houdini地形无缝导入到UE4的流程问题.但这种方法也有它的局限性,在实际游戏项目里,LA和LD还是偏向在游戏引擎编辑器里工作,他们的一些设计也会影响到地形的信息,那么就需要Houdini对已经导入UE4中并Bake成Landscape的地形资源做二次修改.通常会选择两种方案: 方案一:把整个地形和建筑都导回到Houdini里,重新过程化和调整生成后,再全部导入回UE4做处理. 方案二:使用HDA节点的Input和Output,通过调用Houdini Engin…
打开UE4,短暂的兴奋过后,开始大概扫一扫UE4的编辑器,整个界面比UE3更有现代气息: 之前看其他人写的文章,虚幻4最重要的改动集中在下面几个方向上: 跨平台: WIN和MAC平台都能使用,这就意味着必须使用两个平台都能接受的方案. 界面: 由于上述的原则,WPF界面虽然很酷,不支持MONO就只能跟好评无缘了(顺便吐槽一下微软,基于NET做了那么多东西,却总是虎头蛇尾).因此虚幻这回是自己搞了个界面系统出来……而且更丧心病狂的是这个界面可以用在游戏里…… C++化: 不知道是因为Unreal…
UE4.15没有提供蓝图UDP的组件,可以在网上找到一个ID叫Rama写的源代码,我把它封装成插件了(MyUdpPlugin),方便在各个UE4版本工程中使用UDP通信. 使用方式: 1.在自己的工程根目录下新建一个Plugins文件夹,将MyUdpPlugin拷贝进去 2.一般情况下需要重新编译一下插件,最终你会得到一个插件的dll 3.新建一个蓝图类.接收UDP信息就选择MyUDPReceiver,发送UDP就选择MyUDPSender,这两个类都继承自Actor 4.将新建的蓝图类拖拽一个…
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/72834164 作者:cartzhang 一.GENERATED_BODY 都实现了什么? 在前几年的写引擎代码的时候,也类似使用过这些宏定义的方法,用法也是比较复杂的.现在就借UE4来回顾和分析一下. 测试版本:4.15 看例子: // Fill out your copyright notice in the Descri…
转自:http://www.gamelook.com.cn/2015/06/218267 GameLook报道/ 6月5日,2015年第三期GameLook开放日‧虚幻引擎专场活动在上海正式举行,此次活动由Epic Games与GameLook联合主办. 动作游戏凭借爽快的打击感和强烈的操作感一直受到玩家的喜爱,但一些高品质的3D动作游戏设计其实颇有难度,国内市场上常见的大多是横版2D游戏.本次活动上,Megafun的创始人张瀚荣来分享了利用UE4引擎制作3D横版动作游戏的心得. 张瀚荣从策划的…
转自:http://blog.ch-wind.com/ue4%E5%BC%82%E6%AD%A5%E8%BD%BD%E5%85%A5%E8%B5%84%E6%BA%90/ 所有的“硬”指针指向的资源都会被UE4在启动时进行载入,为了防止某些情况下引发的巨大延迟,必要的时候我们需要使用异步资源载入系统. 本文参考:https://docs.unrealengine.com/latest/INT/Programming/Assets/AsyncLoading/index.html进行整理.同时也是研…
BP神经网络 function [W,err]=BPTrain(data,label,hiddenlayers,nodes,type) %Train the bp artial nueral net work %input data,label,layers,nodes,type %data:dim*n %label:1*n %layers:m:number of hidden layers %nodes:num_1;num_2...num_m %type==1:create and train…
UE4版本4.17,不同版本api可能有差异 静态 1 在骨骼上加socket 在socket上右键-添加浏览资源-找到要添加的那个道具(这个只用来看效果,调位置,不会显示到最终效果中),调整socket位置,知道道具位置合适为止 2 在角色bp上,添加一个staticMesh到Mesh节点下 设置父项插槽到刚才创建的socket,选择自己要使用的道具模型 动态(蓝图) 1 创建骨骼socket,步骤同上 2  用蓝图创建跟上面静态一样的结构 注意使用蓝图和c++创建出来的staticMeshC…
http://aigo.iteye.com/blog/2281373 原文作者:@玄冬Wong 相关内容: C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>()  http://aigo.iteye.com/blog/2281558C++实现动态加载UObject:StaticLoadObject():以Texture和Material为例 http://aigo.iteye.com/blog/2268056 这里说的静态加载指的是必须在构造函数中…
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/44748475 作者:cartzhang 说明:kinect使用的是一代版本,SDK为1.8版本 一.概述 根据上篇博客,可大致知道Kinect舒适区范围.下面就借助Ue4平台来表现一下. 建立工程,加载Kinect库.当然,我并没有直接使用Kinect库,而是自己封装了一个自己的库. 使用方法与添加UE4的各种库类似,具体…
目录 蓝图 蓝图命名规范 蓝图优化 暴露C++至蓝图 暴露C++类 暴露C++属性 暴露C++函数 暴露C++结构体/枚举 暴露C++接口 蓝图和C++的结合方案 使用继承重写蓝图 使用组合重写蓝图 方案比较 参考 蓝图 大家都知道,蓝图是UE4提供的极其容易上手的一种可视化脚本,更具体的就不说了. 纯靠蓝图搭建的UE4游戏是存在的,但是这类游戏往往优化很差(除非游戏玩法本身的性能需求不高).更合适的流程往往需要程序员编写C++代码创建一些蓝图可用元素,而设计师再通过蓝图快速搭建游戏. 蓝图命名…
目录 C++基础类型规范 命名规范 头文件规范 字符串规范 字符集规范 参考 C++基础类型规范 由于PC.XBOX.PS4等各平台的C++基础类型大小可能不同(实际上绝大部分都是整型类型的大小不同),因此UE4提供了如下可移植基础类型的别名来统一规范类型大小: bool 代表布尔值(不会假定布尔尺寸). TCHAR 代表字符(不会假定TCHAR尺寸). uint8 代表无符号字节(1字节). int8 代表带符号字节(1字节). uint16 代表无符号"短"字符(2字节). int…
1. 物体复制 具体细节可参考官网内容:http://api.unrealengine.com/CHN/Gameplay/Networking/index.html 这里只挑部分点来展开. 首先,分为服务端和客户端. 然后,先看在c++中的两个参数:bNetLoadOnClient和SetReplicates(true), 对应蓝图的参数如下图所示: Replicate的意思为复制. 假设现在要生成一个物体(如果执行者是服务端时),如果这个物体的Replicate为true,则服务端和客户端都会…
转自:https://dawnarc.com/2016/12/ue4%E4%BC%98%E5%8C%96%E5%BB%BA%E8%AE%AE%E4%B8%8E%E7%BB%8F%E9%AA%8C/ 内容都是处理项目问题的相关笔记,留给自己做备忘录,也分享出来让别人少走弯路. 零散记录 GPUProfile来统计性能消耗的时候,在editor模式下不是很准,因为编辑器的消耗也算进去了,如果要用,最好以Game模式来查看. UE4不支持640X480的分辨率,如果在这个分辨率下运行程序,会导致程序崩…
UE4 概念知识 基础概念--文件结构.类型.反射.编译.接口.垃圾回收.序列化[导图] GamePlay架构[导图] 类的继承层级关系[导图] 反射机制 垃圾回收机制/算法 序列化 Actor 的生命周期 引擎运行流程 渲染流程 UE4 C++ 基础编程 UPROPERTY宏.属性说明符.元数据说明符 UFUNCTION宏.函数说明符.元数据说明符 基本数据类型.字符串处理及转换 枚举 Enum.结构体 Struct 容器--TArray 容器--TMap 容器--TSet Delegate…
总览 在上次作业中,虽然我们在屏幕上画出一个线框三角形,但这看起来并不是那么的有趣.所以这一次我们继续推进一步--在屏幕上画出一个实心三角形,换言之,栅格化一个三角形.上一次作业中,在视口变化之后,我们调用了函数rasterize_wireframe(const Triangle& t). 但这一次,你需要自己填写并调用函数 rasterize_triangle(const Triangle& t).该函数的内部工作流程如下: 创建三角形的2 维bounding box. 遍历此bound…
定义 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用设计模式是为了重用代码.让代码更容易被他人理解.保证代码可靠性. 四人帮 GOF ( Gang of Four) 书籍<设计模式 - 可复用的面向对象软件元素>(<Design Patterns - Elements of Reusable Object-Oriented Software>) 1994 首次提到了软件开发中设计模式的概念 四位作者 Erich Gamma Richard He…
一.单例模式的介绍 单例模式简单说就是掌握系统的至高点,在程序中只实例化一次,这样就是单例模式,在系统比如说你是该系统的登录的第多少人,还有数据库的连接池等地方会使用,单例模式是最简单,最常用的模式之一,面试经常会问答,所以我们在程序考虑什么地方会用到单例模式,单例模式写法有很多种,这里我下面列举2种写法很普遍的写法,然后做个多线程计数的例子大家来理解一下单例模式的用法. 二.单例模式Demo /// <summary>    /// 利用C#的特性单例模式    /// </summa…
1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下载的服务. 除了UE4的官网主页,我也推荐你收藏如下网站: 英文文档:https://docs.unrealengine.com/latest/INT/ 中文文档(未翻译完全):https://docs.unrealengine.com/latest/CHN/index.html UE4的论坛:ht…