[UE4]使用UFUNCTION注意事项】的更多相关文章

#pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "Components/CanvasPanel.h" #include "StaticMiniMap.generated.h" /** * */ UCLASS() class PROJ10_0121_API UStaticMiniMap : public UUserW…
一.如果在Character中使用Spline,则使用Add Spline Mesh Componet的时候,要注意设置Transform.Mobility为Movable 二.使用Predict Projectile Path By TraceChannel函数,Launch Velocity参数并不需要再加上坐标,只需要“单位向量×速度”就可以了. 如下图所示的做法是错误的: 三.Spline组件一定要放在根节点下面,不能放在其它组件节点下面.否则就会造成使用Add Spline Mesh…
http://blog.csdn.net/sinat_27456831/article/details/52800514…
UFunction声明 UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数.UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION 宏放在头文件中函数声明上方的行中.宏将支持 函数说明符 更改UE4解译和使用函数的方式. 可利用函数说明符将UFunction对蓝图可视化脚本图表公开,以便开发者从蓝图资源调用或扩展UFunction,而无需更改C++代码.在类的默认属性中,UFunction可绑定到委托,从而能够执行一些操作(例如将操作与用…
源码下载 git clone git clone https://github.com/20tab/UnrealEnginePython 直接下载zip https://github.com/20tab/UnrealEnginePython 编译 新建C++ UE4工程 拷贝文件夹到Plugin/UnrealEnginePython路径下 配置Python安装路径 注意:要求安装的python需要是X64,本次使用的是python3.6.8 x64,否则会编译失败 项目打包 binaries版本…
UE4中的官方文档结构比较混乱,且有部分错误,不方便学习.笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解.如有讲得不清楚明白的地方,还望批评指正.如需转载请注明出处,http://www.cnblogs.com/Leonhard-/p/6511821.html,这是对作者最起码的尊重,谢谢大家. 本文的结构如下: 一.UE4网络综述 二.UE4中的几种同步方式 1.Actor Replication 2.Property Replica…
目录 蓝图 蓝图命名规范 蓝图优化 暴露C++至蓝图 暴露C++类 暴露C++属性 暴露C++函数 暴露C++结构体/枚举 暴露C++接口 蓝图和C++的结合方案 使用继承重写蓝图 使用组合重写蓝图 方案比较 参考 蓝图 大家都知道,蓝图是UE4提供的极其容易上手的一种可视化脚本,更具体的就不说了. 纯靠蓝图搭建的UE4游戏是存在的,但是这类游戏往往优化很差(除非游戏玩法本身的性能需求不高).更合适的流程往往需要程序员编写C++代码创建一些蓝图可用元素,而设计师再通过蓝图快速搭建游戏. 蓝图命名…
1. 物体复制 具体细节可参考官网内容:http://api.unrealengine.com/CHN/Gameplay/Networking/index.html 这里只挑部分点来展开. 首先,分为服务端和客户端. 然后,先看在c++中的两个参数:bNetLoadOnClient和SetReplicates(true), 对应蓝图的参数如下图所示: Replicate的意思为复制. 假设现在要生成一个物体(如果执行者是服务端时),如果这个物体的Replicate为true,则服务端和客户端都会…
UE4技术总结--委托 目录 UE4技术总结--委托 一.定义 二.用法 2.1 声明与调用委托 2.1.1 单播委托 2.1.1.a 声明 2.1.1.b 绑定 2.1.1.c 执行委托 2.1.1.d PayLoad 2.1.1.e 底层实现 绑定函数指针 Payload的实现 绑定 补充 2.1.1.f 总结 2.1.2 动态(单播)委托 2.1.2.a 声明 2.1.2.b 绑定 2.1.2.c 执行委托 2.1.2.d 底层实现 2.1.2.e 总结 2.1.3 多播委托 2.1.3.…
UE4 概念知识 基础概念--文件结构.类型.反射.编译.接口.垃圾回收.序列化[导图] GamePlay架构[导图] 类的继承层级关系[导图] 反射机制 垃圾回收机制/算法 序列化 Actor 的生命周期 引擎运行流程 渲染流程 UE4 C++ 基础编程 UPROPERTY宏.属性说明符.元数据说明符 UFUNCTION宏.函数说明符.元数据说明符 基本数据类型.字符串处理及转换 枚举 Enum.结构体 Struct 容器--TArray 容器--TMap 容器--TSet Delegate…
原文作者:@玄冬Wong 转载请注明原文出处:http://aigo.iteye.com/blog/2268777 这是论坛上对UE服务端功能的回答,意思是UE4提供了主流MMO网游服务端所具备的特性,包括位移修正.物理碰撞检测.这些特性不是UE4才加入,早期UE版本就有了. https://answers.unrealengine.com/questions/14311/what-online-multiplayer-features-are-available-and.html UE4自带的…
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…
使用UE4接口比起普通的高级语言,要多做很多工作,是因为要兼容蓝图的使用,有一些小坑需要注意,开始吧. 1.新建接口类 打开UE4编辑器,与往常一样,新建C++类,然后选择Object继承,然后取名字,这里我使用工作中我的接口名,作为例子说明,"ITrackTeam" 然后修改继承的类,而且你没有看错,就是写2个class,一个叫UTrackTeam,一个叫ITrackTeam,类名和头文件名可以不一样的,我这边命名没有遵守虚幻的规则,本来应该命名为"UITrackTeam&…
学习UE4框架中的标签,本篇是总结成员变量标签UPROPERTY. 引擎版本:4.12.5 前期准备: 1.新建项目,C++空模板,新建C++类,继承AActor,名称MyActor. 使用TestActor变量进行测试. // MyActor.h #pragma once #include "GameFramework/Actor.h" #include "MyActor.generated.h" UCLASS() class MYSTEAMONLINEC_API…
H UFUNCTION(BlueprintNativeEvent) void EventName(); virtual void EventName_Implementation(); EventName事件发生时会调用这个函数 CPP void ClassName::EventName_Implementation() 这个宏是UE4的强制内联函数,用于优化,返回Mesh的指针给Pickup FORCEINLINE class UStaticMeshComponent *GetMesh() c…
本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开发. 顾名思义,数据表就是以有意义且有用的方式将各种相关的数据归类的表格, 其中,数据字段可以是任何有效的 UObject 属性,包括资产引用.在设计师将 CSV 文件导入数据表前,程序员必须创建行容器以指示引擎如何解释数据. 这些数据表包含了列名,这些列名…
截至UE4  4.10 runtime 无法生成BSP类 ,只能通过自定义的Mesh的Vertex 进行绘制 ( Google 考证,能改UE4源码的请忽略 ) 可用到的 UE4 集成的Render Plugins : CustomMeshComponent ProceduralMeshComponent 以下是参考 参考文献: https://wiki.unrealengine.com/Procedural_Mesh_Generation https://answers.unrealengin…
Project Tango应该说是Google一试水AR的设备,其中Project Tango主要二个功能,一个是获取深度信息,如MS的Kinect,有相当多的设备都有这个功能,二是第一人称相对定位,这个就没那么常见了,如果对这个设备有更深的兴趣,可以看知乎上的这二个链接. Google Project Tango获取深度信息的原理是什么? Project tango是如何仅凭自身摄像头实现位置追踪的? 在这就不仔细来说这个东东了,上面二个链接比我自己再来说篇好多了,Project Tango本…
1.虚幻中的类前缀你会见到U,A,F,以下就是很好的罗列其中的意义 U: UObject继承过来的,例如UTexture A: AActor继承过来的,例如AGameMode F: 其他的类和结构,例如FName, FVector T:模板,例如TArray,TMap,TQueue I: 接口类,ITransaction E:枚举, ESelectionMode B: Boolean, bEnabled 2.区分大小写! 用宏定义来包裹C++代码 UCLASS 来包裹类 USTRUCT 包裹结构…
转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的简单实现. (五)角色添加网格 Character类为我们默认创建了一个SkeletaMeshComponent组件,所以我们仅仅需要做的就是使用哪一个静态网格模型.接下来我们为我们的FPSCharacter类创建一个蓝图,这样我们可以简单的把资源指定给静态网格模型这里,并且方便以后操作添加的组件.…
转自:http://blog.csdn.net/u011707076/article/details/44180951 从今天开始,我们一起来学习一下,如何使用C++将一个不带有任何初学者内容的空模板,从无到有的创建一个简答却完整的FPS项目,通过这几篇文章的学习,我们大致了解到UE4 C++编程的流程,能够成功创建一个新的游戏模式,创建出第一人称的角色,他能够在场景中漫游并且向周围射击,完成一个整个工程. 第一部分:   (一)创建项目,新建游戏模式   1.新建一个C++的空项目,没有初学者…
立即归还,本文将总结所有这些整理UE4有关角色的网络格.动画.子弹类HUD一个简单的实现. (五)角色加入网格 Character类为我们默认创建了一个SkeletaMeshComponent组件,所以我们只须要做的就是使用哪一个静态网格模型.接下来我们为我们的FPSCharacter类创建一个蓝图,这样我们能够简单的把资源指定给静态网格模型这里,而且方便以后操作加入的组件. 作为開始,我们首先要导入一个第三人称的静态网格模型.最后我们设置成两个网格,一个是我们自己看的,另外一个是其它人看到的.…
即使开放世界已然成为现今游戏趋势,切换关卡过程中的读条仍是很难避免的,譬如进入房屋.传送到其他世界等等. 于是就引入了loadingscreen这一需求. loadingscreen顾名思义就是加载过程中通过其他线程显示的画面,可以是真读条(显示当前进度),也可以仅仅转着圈,循环播放某段视频. 我们首先需要新建c++类MyGameInstance继承自GameInstance,并在项目设置中将其设为当前使用的 这里我先创建了一个继承自MyGameInstance的蓝图,叫bp_MyGameIns…
Zego即构是一家做直播的服务商,Zego即构自己的房间列表,本文只是测试功能用,相应代码并没完全测试,请选择性参考. 我们在UE4中来实现一下,我感觉这个过程有点意思,UE4中C++与蓝图和UI的互相通信基本全部用到了. Zego即构没有专门的UE4插件,所以我们主要逻辑全部在C++中,蓝图只是辅助. 首先,我们定义一个房间结构,因为要想UE4中C++和蓝图可见可用,我们要用C++实现,并实现特定的写法让蓝图知道. USTRUCT(BlueprintType) struct FRoomBlue…
蓝图里的Pure函数跟正常函数的区别是:Pure函数在它连接到的正常函数执行的时候才执行,正常函数按照连接的顺序执行. Pure函数不会改变游戏中其他的变量,所以getter和其他一些纯计算的函数一般设置为pure.这个特点跟C++的const函数很类似,所以在UE4的c++中,将一个const的函数暴露给蓝图,也会是一个pure函数.同时也可以使用UFUNCTION(BlueprintPure)将一个函数暴露为Pure函数.…
原文链接:http://gad.qq.com/article/detail/7181131 本文首发腾讯GAD开发者平台,未经允许,不得转载 UE4的蓝图之强大让人欲罢不能,但是实际在项目的开发中,C++与蓝图都需要结合使用,单独选择一样开发都不是特别科学,这里我就来研究了一下C++使用UMG接口来操作界面,我的目的非常简单,用C++来创建界面,并在创建成功的时候,告诉界面打印出相关信息. 1.创建一个C++的空模板工程,命名UMGProject,用VS打开工程文件,找到UMGProject.B…
虽然有人建议UE4使用C++创建VR项目,能避免一些坑爹的错误,但是我用C++创建,竟然问题更多,还存在创建不了的情况,也不知道是不是我的操作问题,快疯了. 于是我还是选择了蓝图创建VR项目,但是... 可能是写代码习惯了,蓝图用着相当别扭,而且有些功能甚至没有,我也不知道,反正是没找到. 最后,折中,用C++来写部分功能,再在蓝图中调用,这里就写了应用在VR手柄上的一个射线拾取,为了让用户能更好的操作,我们需要将射线在场景中绘制出来. 射线拾取 //起点 终点 FHitResult RayGe…
命令行在外部 从命令行运行编辑项目 1 导航到您的[LauncherInstall][VersionNumber]\Engine\Binaries\Win64 目录中. 2 右键单击上 UE4Editor.exe 的可执行文件,并选择创建快捷方式. 3 重命名该快捷方式,它会启动编辑器,即 MyProject 的- Editor.exe. 4 右键单击新创建的快捷方式并选择属性. 5 加入项目文件参数属性: [LauncherInstall][VersionNumber]\Engine\Bina…
GameMode只有服务端有,适合写游戏逻辑.PlayerController每个客户端拥有一个,并拥有主控权.GameState在服务端同步到全端. CLIENT生成的Actor对其有Authority. http://api.unrealengine.com/INT/Gameplay/Framework/GameMode/index.html 简单来讲 需要同步的操作写到Server,不需要同步的操作写到Client 变量同步 Replicated 复制模式 RepNotify:会创建一个变…