草庐IT

Ue4_GamePlay

全部标签

UE4 C++学习 浅析UProperty属性说明符

本文就UProperty是什么?以及UProperty怎么用?做一个简单的总结。什么是UPROPERTY?首先看下官方的解释:  感觉还是比较模糊没看懂有什么用,我们接着往下看 要知道UPROPERTY有什么用,我们首先要知道反射(Refection)这个机制。这个机制在Java和C#等语言都是存在的,但是C++语言本身没有,所以UE4才有引入一些功能(例如UPROPERTY)用来实现反射。 我们先看看其他语言中对于反射的定义是什么:反射就是在运行状态中:1.对于任意一个类,都能够知道这个类的所有属性和方法;2.对于任意一个对象,都能够调用它的任意一个属性和方法;即可以动态的获取信息以及调用对

UE4.25 Slate源码解读

概述Slate系统是UE的一套UI解决方案,UMG系统也是依赖Slate系统实现的。问题:Slate系统是如何组织的?控件树的父子关系是如何绑定的?Slate系统是如何渲染的?slate渲染结构和流程是如何组织的?如何进行合批?结构SWidget控件类型SWidget是Slate系统中所有控件的父类。控件有三种类型。叶控件-不带子槽的控件。如显示一块文本的STextBlock。其原生便了解如何绘制文本。面板-子槽数量为动态的控件。如垂直排列任意数量子项,形成一些布局规则的SVerticalBox。合成控件-子槽显式命名、数量固定的控件。如拥有一个名为Content的槽(包含按钮中所有控件)的S

UE4.25 Slate源码解读

概述Slate系统是UE的一套UI解决方案,UMG系统也是依赖Slate系统实现的。问题:Slate系统是如何组织的?控件树的父子关系是如何绑定的?Slate系统是如何渲染的?slate渲染结构和流程是如何组织的?如何进行合批?结构SWidget控件类型SWidget是Slate系统中所有控件的父类。控件有三种类型。叶控件-不带子槽的控件。如显示一块文本的STextBlock。其原生便了解如何绘制文本。面板-子槽数量为动态的控件。如垂直排列任意数量子项,形成一些布局规则的SVerticalBox。合成控件-子槽显式命名、数量固定的控件。如拥有一个名为Content的槽(包含按钮中所有控件)的S

UE4 内功 如何学习UE C++并查看蓝图节点的源码

查看蓝图节点源代码的方法:方法一:复制蓝图中的节点,然后随便粘贴到一个文档中,如下图所示:查看由通道检测射线节点的C++源码    方法二:安装引擎的【输入调试用符号】,然后可以直接点击蓝图转到源代码具体操作见文章:https://zhuanlan.zhihu.com/p/107665152?utm_source=qq&utm_medium=social&utm_oi=1226585411734233088 

UE4 内功 如何学习UE C++并查看蓝图节点的源码

查看蓝图节点源代码的方法:方法一:复制蓝图中的节点,然后随便粘贴到一个文档中,如下图所示:查看由通道检测射线节点的C++源码    方法二:安装引擎的【输入调试用符号】,然后可以直接点击蓝图转到源代码具体操作见文章:https://zhuanlan.zhihu.com/p/107665152?utm_source=qq&utm_medium=social&utm_oi=1226585411734233088 

UE4 C++调用C# DLL(DllExport方法)

之前看见园子里一篇C++调用C#的文章,参考后拿UE试一下。刚开始尝试了C#dll>CLRC++DLL>NativeC++DLL的做法,原生环境下是可以的,但是到UE4里会Crash。后来换成了DllExport(UnmanagedExports)的做法,并测试成功。当然对比UnrealCLR之类的方案,这个只能解一时之需。 1.注意事项使用Nuget上的UnmanagedExports1.2.7版本,各种坑点和问题总结如下:.NetFramworkdll从4.5-4.8应该都是可以导出的,.Netstandard(core)的dll导出测试失败。必须指定导出平台是x86还是x64,不要用默认

UE4 C++调用C# DLL(DllExport方法)

之前看见园子里一篇C++调用C#的文章,参考后拿UE试一下。刚开始尝试了C#dll>CLRC++DLL>NativeC++DLL的做法,原生环境下是可以的,但是到UE4里会Crash。后来换成了DllExport(UnmanagedExports)的做法,并测试成功。当然对比UnrealCLR之类的方案,这个只能解一时之需。 1.注意事项使用Nuget上的UnmanagedExports1.2.7版本,各种坑点和问题总结如下:.NetFramworkdll从4.5-4.8应该都是可以导出的,.Netstandard(core)的dll导出测试失败。必须指定导出平台是x86还是x64,不要用默认

UE4 C++ 浅析InterFace接口以及简单实现一个开关

我们先来看看什么是接口?官方的定义是:接口类有助于确保一组(可能)不相关的类实现一组通用函数。在某些游戏功能可能被大量复杂而不同的类共享的情况下,这非常有用。例如,某个游戏可能有这样一个系统,依靠该系统输入一个触发器体可以激活陷阱、警告敌人或向玩家奖励点数,这可以通过针对陷阱、敌人和点数奖励器执行"ReactToTrigger"函数来实现。然而,陷阱可能派生自"AActor",敌人可能派生自专门的"APawn"或"ACharacter"子类,点数奖励可能派生自"UDataAsset"。所有这些类都需要共享功能,但它们没有除"UObject"之外的共同上级。在这种情况下,推荐使用接口。 其实要理

UE4 C++ 浅析InterFace接口以及简单实现一个开关

我们先来看看什么是接口?官方的定义是:接口类有助于确保一组(可能)不相关的类实现一组通用函数。在某些游戏功能可能被大量复杂而不同的类共享的情况下,这非常有用。例如,某个游戏可能有这样一个系统,依靠该系统输入一个触发器体可以激活陷阱、警告敌人或向玩家奖励点数,这可以通过针对陷阱、敌人和点数奖励器执行"ReactToTrigger"函数来实现。然而,陷阱可能派生自"AActor",敌人可能派生自专门的"APawn"或"ACharacter"子类,点数奖励可能派生自"UDataAsset"。所有这些类都需要共享功能,但它们没有除"UObject"之外的共同上级。在这种情况下,推荐使用接口。 其实要理

UE4 C++学习 UFunction函数说明符

本文就什么是UFunction?UFunction怎么用?做一个简单的总结UFUNCTION和UPROPERTY一样都为UE4的反射系统服务,要知道什么是反射系统可以看上一个博客:UE4C++学习浅析UProperty属性说明符-CatSevenMillion-博客园(cnblogs.com)什么是UFunction?一样的,先来看下官方解释:   如果你看过上一篇博客,那你应该就知道,UProperty(属性说明符)其实就是对UE4中的一些你可以设置的属性功能有哪些,比如这个属性是否是可读,可编辑,或者是蓝图上能否看见等等。同理,UFunction就是对UE4中的函数的功能做一些限制。 怎么