![](https://img-blog.csdnimg.cn/20210508112424239.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unreal
文章平均质量分 78
Unreal开发实例、疑难杂症以及使用方法等
凯尔八阿哥
佛系码农
展开
-
虚幻学习笔记22—C++同步和异步加载
之前提到的静态和动态加载都是同步的加载,同时其中的引用基本都是硬引用。如果资源比较大的话会出现卡顿的现象,下面将介绍一种异步加载的方式。同时,还将介绍一种区别与之前的Load的方法。在说明同步和异步加载之前需要先讲一下虚幻引擎的引用路径的问题,虚幻中的资源和类的引用包含软引用和硬引用,硬引用即对象A引用对象B,那么加载对象A的时候会自动加载对象B。软引用,即对象A通过间接机制(一般是字符串形式的路径)来引用对象B,不会在A加载时加载B。静态和动态加载3.1、软引用和硬引用的区别。原创 2023-12-26 14:11:36 · 980 阅读 · 0 评论 -
虚幻学习笔记21—C++中实现射线检测
虚幻中射线检测根据通道分为单通道和多通道检测,根据检测目标分为通道检测和目标物体类型检测。虚幻的射线检测都是直线形状,而unity(又拿来对比了)不仅有直线形状射线检测,还有球形等其他多边形的检测,对比起来虚幻就有点匮乏了。3.1、LineTraceSingleByProfile的Profile是碰撞预设,可以在项目设置里。原创 2023-12-25 08:34:28 · 1202 阅读 · 0 评论 -
虚幻学习笔记19—C++中使用时间轴
在蓝图中可以很容易的创建一个时间轴,如图1.1.1所示为一个新建的时间轴,双击时间轴可以添加不同的轨道,分别有浮点、向量和事件,具体的可以自己去玩玩,这个在虚幻的开发中是非常常用的,最后创建的时间轴要绑定到一个事件中触发。图1.1.1在C++代码中也会经常用到时间轴,本案例中将通过时间轴创建一个开关门的效果。本系列使用的虚幻5.2.1,VS2022。3.1、原创 2023-12-21 10:03:23 · 1020 阅读 · 0 评论 -
虚幻学习笔记18—C++委托(多播)和事件
委托分单播和多播,多播就是可以绑定多个回调函数,然后一次性执行。这样也可以理解为啥多播没有返回值,多个回调函数执行后返回哪一个都是问题啊。而事件呢官方官方文档说法是“对于事件而言,只有定义事件的类才能调用函数”。这句话不是很理解,网上有解读是说事件的定义第一个参数就是类名,只有这个类可以调用后面的函数,但我试了第一个参数是别的类也可以。使用的虚幻版本为5.2.1,VS版本为2022.3.1、动态多播委托的第一个参数名称必须以”F“开头,否则会编译报错。原创 2023-12-18 15:02:29 · 824 阅读 · 0 评论 -
虚幻学习笔记15—C++和UI(一)
在C++可以直接创建按钮、滚轮等UI,并且可以直接绑定并处理响应事件。在创建C++代码后还是需要通过蓝图来显示到应用中,总体来说还是不如直接用蓝图来的方便。原创 2023-12-14 11:40:22 · 717 阅读 · 0 评论 -
虚幻学习笔记14—重叠和碰撞事件
在开发应用当中两个物体的重叠和碰撞事件会经常用到,在虚幻中哲两个有很大的区别,在官方文档碰撞概述其实已经讲了怎样发生碰撞和重叠,但是还是遗漏不少注意事项合细节,主要文档写的太粗糙了,这也让我在使用的时候产生了很多困惑,尤其是碰撞。本文使用的虚幻引擎版本为5.2.1。3.1、要发生重叠最重要的是两个物体都要设置“生成重叠事件”。3.2、重叠的两个物体的处理事件先后顺序有规律,碰撞的暂时没什么规律。原创 2023-12-13 17:41:03 · 1661 阅读 · 0 评论 -
虚幻学习笔记12—C++类的实例化
本系列如无特殊说明使用的虚幻版本都是5.2.1,VS为2022版本。在Unity中通常创建的脚本都默认继承了MonoBehavior,都是不能再用代码New而实例化的,虚幻也是一样不能直接New来实例化。在Unity中是通过Instantiate方法来实例化一个游戏对象,虚幻中通过TSubclassOf、StaticClass等操作来实例化一个游戏对象。相比来说虚幻更复杂点。原创 2023-12-11 17:19:37 · 701 阅读 · 0 评论 -
虚幻学习笔记11—C++结构体、枚举与蓝图的通信
结构体的定义和枚举类似,枚举的定义有两种方式。区别是结构体必须以“F”开头命名,而枚举不用。额外再讲了一下蓝图生成时暴露变量的方法。通过如下代码定义一个上述结构体类型的变量,在蓝图中可以编辑和使用该类型的变量,如图2.1.2所示,为面板中的变量。图2.1.3为蓝图中调用该定义的变量。//结构体图2.1.2图2.1.33、结构体和数据表格进行绑定。原创 2023-12-11 14:16:39 · 1361 阅读 · 0 评论 -
虚幻学习笔记10—C++函数与蓝图的通信
除了上一章C++变量与蓝图通信讲的变量能与蓝图通信外,还有函数和枚举也可以和蓝图通信。函数的关键字为”UFUNCTION“、枚举的关键字为”UENUM“。3.1、BlueprintImplementableEvent的函数在C++代码中只需要声明不需要实现。3.2、BlueprintNativeEvent的函数在C++代码中声明了还必须实现,不实现会编译报错。原创 2023-12-08 16:07:44 · 719 阅读 · 0 评论 -
虚幻学习笔记9—C++代码变量与蓝图的通信
C++代码中通过关键字“UPROPERTY”来讲所需要的变量、方法或枚举反射暴露给蓝图,实现C++和蓝图之间的通信。所有实现的变量都在一个名为“MyPawn1”类中,同时提到的蓝图是根据这个类创建的。同时这个Pawn类为场景中的默认Pawa类。图1.1.1文中提到的实例化面板也即根据上图1.1.1创建的蓝图”BP_MyPawn1“实例化后的面板,当运行程序后会默认创建一个实例,同时如果自动讲”BP_MyPawn1“蓝图拖动到场景中也会创建一个实例。如图1.1.2所示为运行后的两个蓝图实例。图1.1.2。原创 2023-12-08 14:12:15 · 1023 阅读 · 0 评论 -
虚幻学习笔记4—文本内容处理
本文使用的虚幻引擎5.3.2,在虚幻中已经集成了很多可以直接处理多样化文本的蓝图,比如格式化动态显示、浮点数多样化等。两个常用的处理文本的蓝图。原创 2023-11-27 16:09:08 · 759 阅读 · 0 评论 -
虚幻学习笔记2—点击场景3D物体的两种处理方式
本文使用的虚幻引擎为5.3.2,两种方式分别为:点击根物体和精准点击目标物体。无。原创 2023-11-27 10:00:13 · 1194 阅读 · 1 评论 -
虚幻学习笔记1—给UI添加动画
给UI添加动画原创 2023-11-24 15:00:16 · 1086 阅读 · 0 评论 -
UE4学习案例——多人网络中同步信息的方法
一、前言 截至本篇文章发布时使用的UE4版本为4.25.4,这里所说的同步的信息是指用户的信息,如分数,这样的数据需要显示在每个客户端。二、实现2.1、官方案例的方法我在学习UE4官方案例《多人枪战游戏》时看到的其思路时这样的,首先,在玩家Gunslinger_BP蓝图的收到伤害事件Event AnyDamage中直接修改PlayerState的玩家分数,如图2.1所示,其中PlayerState是UE4系统自动维护其网络状态,会确保执行其中的同步方法,图...原创 2021-07-15 13:43:02 · 2774 阅读 · 1 评论 -
UE4学习杂项总结一
一、前言 学习UE4也有一段时间了,将遇到的问题做了一个汇总,也许对我来说目前这写问题还算是一个知识点,因为其中还有一些基本的操作问题。当然也有一些非常费解的、截至到目前为止我也没有找到解决方法的问题。二、具体内容2.1、界面操作BoxBrush刚创建的BoxBrush在Details中找不到Materials、Physics等属性,无法对材质进行设置,如图2.1.1所示:图2.1.1这是因为刚创建的Bush需要转换成StaticMesh才会有上述的属性,点击Br...原创 2021-07-08 08:56:55 · 726 阅读 · 0 评论 -
UE4 中GameInstance、GameMode、GameState、PlayerState和PlayerController的关系
一、前言 本篇文章为止使用的虚幻引擎版本为UE4.25.4,这几个蓝图或类是开发多人网络游戏或应用必须搞清楚和透彻的东西。学习UE4时间不长,网上找资料也没有一个说的全面的,之前一直都是半迷糊状态,通过零碎的官方文档和我找的一份比较全面的UE4资料Unreal Engine 4' Network Compendium之后再结合自己动手做的一些实验我将全面阐述这几个类的使用说明。二、介绍 这几个类都属属于Gameplay框架里面的,首先是官方文档的介绍我用一个表格总结如...原创 2021-07-01 17:44:53 · 9372 阅读 · 2 评论 -
UE4 Atmospheric Fog组件问题记录(未解决)
一、前言 我在学习官方案例《多人枪战游戏》时遇到的问题,这个问题时这样的:我手动创建的Atmospheric Fog组件无法达到案例中的效果,如图2是案例中的效果,我自己手动创建并设置组件的各项参数和案例上一直后的效果如图3所示,我在尝试设置World Setting和Project Setting确保和案例上的保持一致后还是无法实现案例中图2的效果,已知我适用的UE4版本为4.25.4,案例所支持的版本为4.7-4.24,图1图2图3二、实现2.1、再...原创 2021-06-15 14:35:54 · 541 阅读 · 6 评论 -
UE4模型贴图优化
一、前言 本章的内容主要时来源于虚幻4官方学习视频为优化性能而准备设计数据,内容上进行了编排和节选,文章主要适用于技术美术人员处理模型时应该考虑的问题,同时也可以为技术Leader人员提供项目管理时需要考虑的知识。二、内容2.1、模型的坐标轴设置 对模型进行轴的设置可以说是我们经常要遇到的问题,从建模工具中导出的模型如果设置的坐标轴不合适放到Unity或者UE4中不好拖动和调整。从技术上来讲这个根本就不是问题,但是为了获得在编辑时更好的体验,我们还是需要遵循一些...原创 2021-06-09 14:52:20 · 6069 阅读 · 2 评论 -
虚幻4基础知识——编辑器
一、前言 最近将虚幻4的知识点进行梳理了一遍,算作是初学者的角度学习该引擎时遇到的问题的汇总。包括UI、编辑器以及蓝图部分,不过都是挑了我自己需要记录的东西,没有涵盖所有内容。二、编辑器知识2.1、视口和模式面板视口是观察和编辑的关卡的窗口1)沉浸式窗口:按快捷键F11即可切换为沉浸式窗口,让编辑的视口全屏2)书签:在编辑关卡是按下Ctr+数字如Ctr+4,即可设置当前编辑时的视角,在关卡编辑时想要快速切换到该视角按下4即可快速的切换到设定的视角,或者点击如图1所示的按...原创 2021-01-15 16:07:11 · 1922 阅读 · 0 评论 -
虚幻4——实时渲染学习笔记
一、渲染之前和遮挡1.1、延迟渲染(Deferred)1)延迟渲染和前向渲染的区别:延迟渲染延迟了部分渲染,它拥有的信息总是并非总是和前向渲染一样。例如,到了最后光照渲染阶段,延迟渲染渲染光照时就不在拥有之前渲染几何体时所获得的所有信息。使用延迟渲染在一开始的时候性能会损失很多,但是随着各种功能的增多和混合,性能都会很稳定不会下降很多,这就是为啥很多手机游戏和应用都使用前向渲染,而很多高端游戏比如主机游戏如3A大作等一类的游戏倾向于使用延迟渲染。2)延迟渲染的优势:可以获得更加稳定而又可预测的高原创 2021-01-08 10:33:04 · 1884 阅读 · 1 评论 -
虚幻4脱坑指南——官网C++编程教程中第一人称设计游戏教程的若干问题及解决方法
一、前言 我使用的虚幻4引擎版本为4.25.3,碰到的问题是针对官网C++编程教程中第一人称设计游戏教程出现的情况。二、问题与实现2.1、缺少引用的编译错误如图1所示的步骤2.7中,将官网的代码Copy到工程文件中编译不通过;图1实现方式:添加确实的引用头文件“#include "Camera/CameraComponent.h" ”,这个头文件是声明变量“// FPS 摄像机。UPROPERTY(VisibleAnywhere)UCameraCompon...原创 2020-10-30 08:59:10 · 842 阅读 · 1 评论 -
虚幻4脱坑指南——删除或恢复C++类
一、前言 在虚幻4中删除一个C++类是比较费劲的,会让你怀疑虚幻4的脑抽设计对C++编程的废物设计。如图1所示在虚幻引擎中无法图1直接删除C++类,因为鼠标右键点击该类根本找不到删除的按钮。同样,在删除了错误的类,想要从回收站恢复的时候,在虚幻工程中也无法直接看到。找了网上的一些方法,都比较简陋,都是简简单单的文字描述,在我按照其中的方法实现的时候还是没有解决问题。比如,在生成“Generate Visual Studio project files”文件之后会出现如图2a所示情况...原创 2020-10-20 14:50:44 · 1920 阅读 · 1 评论