UE4学习
执手画眉弯
这个作者很懒,什么都没留下…
展开
-
UE 解决byte在C17中冲突的问题
UE4解决byte在C17中冲突的问题原创 2022-12-05 13:51:02 · 401 阅读 · 1 评论 -
UE4 加载地图后的时序
UE4 加载地图后的时序bool UEngine::LoadMap( FWorldContext& WorldContext, FURL URL, class UPendingNetGame* Pending, FString& Error ){ ... // Prime texture streaming. IStreamingManager::Get().NotifyLevelChange(); if (GEngine && GEngine->XR原创 2021-06-09 10:35:55 · 1040 阅读 · 0 评论 -
UE4 声音模块
UE4 声音模块该文主要简单讲述UE4 声音模块的导入声音ImportSound,声音资源SoundCue,声音编辑器SoundEditor,音效类SoundClass,音效类混音SoundClassMix,声音衰减SoundAttenuation,声音并发SoundConcurrency,播放声音PlaySound。导入声音 ImportSound虚幻引擎当前可导入未压缩、小端字节、16位的Wave(WAV)文件(支持各种采样率,但推荐采样率为44.1 kHz或22.05 kHz)。在内部,UE4原创 2021-06-05 18:30:16 · 2138 阅读 · 1 评论 -
2021-06-03
UE4 加载地图后的时序bool UEngine::LoadMap( FWorldContext& WorldContext, FURL URL, class UPendingNetGame* Pending, FString& Error ){ ... // Prime texture streaming. IStreamingManager::Get().NotifyLevelChange(); if (GEngine && GEngine->XR原创 2021-06-03 09:31:14 · 176 阅读 · 0 评论 -
UE4 读取ini文件 小记
UE4 读取非config目录的ini配置时的注意事项当我们把一些自定义的ini文件放在类似content下的目录时,在对它进行读取的时候,会跳转到获取String的位置,如下bool FConfigCacheIni::GetString( const TCHAR* Section, const TCHAR* Key, FString& Value, const FString& Filename ){ FRemoteConfig::Get()->FinishRead(*Fi原创 2021-05-20 14:08:48 · 1599 阅读 · 0 评论 -
UE4函数反射 C++与蓝图的联系
UE4 函数反射 C++与蓝图的联系UFUNCTION的类型简介先了解UFUNCTION声明的类型:namespace UF{ // valid keywords for the UFUNCTION and UDELEGATE macros enum { /// This function is designed to be overridden by a blueprint. Do not provide a body for this function; /// the aut原创 2021-03-05 17:18:49 · 479 阅读 · 0 评论 -
UE4下载与存储图片
UE4 从网络端下载图片并且缓存到本地从网络端下载一个图片,并且在UI上显示出来,然后再缓存到本地文件中,方便下次使用。下载图片UE4官方提供了一个异步任务类,专门处理下载图片的需求。DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDownloadImageDelegate, UTexture2DDynamic*, Texture);UCLASS()class UMG_API UAsyncTaskDownloadImage : public UBlue原创 2021-02-26 14:54:49 · 4669 阅读 · 3 评论 -
UE4的多线程和tick
文章目录 简介常用方法TickTimerManagerAsyncTaskAsyncFAutoDeleteAsyncTaskFAsyncTaskFRunnable 一些新发现FTickableGameObject 线程的同步FCriticalSection 简介 多线程在任何语言中都是不可或缺的,意义重大的,因此,能熟练使用多线程往往是一件能让工作事半功倍的事情。那么做为强大的UE4引擎,又给了我们什么支持呢?很多人可能知道runable,知道tick但是这都只是UE4多线程的一部分..转载 2020-11-14 16:11:45 · 2301 阅读 · 0 评论 -
UE4小技巧之官方Snippet导入
UE4 官方Snippet导入Visual Studio Snippets for Unreal Engine C++ ProjectsHow to install snippets?How to use snippets?UE4 引擎自带了一部分扩展部件在Engine/Extras/ 目录下,平时最常用的是UnrealVS的Vistual Studio插件,另外还有一个比较实用的就是VisualStudioSnippets。在 Engine/Extras/VisualStudioSnippets/ 文原创 2020-11-09 17:36:55 · 562 阅读 · 0 评论 -
UE4 相对坐标转世界坐标
UE4 Relative Location To World Location相对坐标转世界坐标世界坐标转相对坐标相对坐标转世界坐标//For example, if T was an object's transform, this would transform a position from local space to world space.FVector UKismetMathLibrary::TransformLocation(const FTransform& T, FVect原创 2020-06-23 11:47:30 · 6994 阅读 · 0 评论 -
UE4 MapCheck: Error: WorldSettings_1 Maps need lighting rebuilt
如果使用源码版本的UE4引擎,经常会出现需要重新构建光照的红字提示,然后你去按照提示构建光照,就会报错,继续给你弹出该提示。其实这时候要相信自己,它仅仅是因为使用源码版本构建引擎的时候,默认不会编译UnrealLightMass这个程序,而构建光照刚好就是使用的该程序,你只需要在VS里面的Programs下边选中UnrealLightMass这个工程,重新编译就能解决问题。 同理,其实你还能发现很多源码版本默认没有编译的程序,UnrealInsights, Unrea...原创 2020-05-20 14:33:32 · 3865 阅读 · 4 评论 -
UE4 Build Configuration
UE4编译配置相关,可以修改UBT使用的vs版本,windows sdk版本,msvc版本等等。https://docs.unrealengine.com/en-US/Programming/BuildTools/UnrealBuildTool/BuildConfiguration/index.html举个栗子,比如你想指定该UE4引擎使用的msvc和sdk版本修改Engine/...原创 2019-10-30 10:40:07 · 2098 阅读 · 0 评论 -
UE4 接入Aliyun SDK
1. 首先https://help.aliyun.com/document_detail/106216.html?spm=a2c4g.11186623.6.921.45171717JSWP5D 下载阿里云sdk源码,按照步骤编译出alibabacloud-oss-cpp-sdk.lib2. 在UE工程文件夹下创建ThirdParty/Aliyun/include文件夹,然后把阿里云源码下的sd...原创 2019-10-30 09:38:02 · 2586 阅读 · 15 评论 -
关于任务节点时间限制的问题修正(TimeLimit)
上次文章中有提到一个“为了防止任务卡在某些节点上,可以使用 Event Receive Tick 或者 Event Receive Tick AI 作为计时器使用,超过一定时限,强制让该任务节点返回。”的问题,事实上证明,该处理方案可能达不到预期的效果,后来我在使用中才发现UE4行为树其实自带了时间限制节点,叫“TimeLimit”的装饰器节点,该节点就可以达到我们相关的需求。唯一需要注意的是,同原创 2017-04-06 14:46:46 · 2197 阅读 · 0 评论 -
UE4 Android打包一些后处理无法支持问题
在UE4开发Android平台App时候,因为渲染器的原因导致一些后处理效果无法正常显示,但是其实目前大部分中高端以上的机型都支持Vulkan渲染,我们可以在UE4里把这项功能打开以支持对应的后处理效果。(在我们项目中就解决了雾特效无法正常显示的问题。) 附上官方文档传送门http://api.unrealengine.com/CHN/Platforms/Android/...原创 2019-04-16 10:28:33 · 1577 阅读 · 0 评论 -
UE4 URL Scheme 从浏览器调起App
UE4的移动平台应用通过调用URL Scheme从网页启动App1. Android在Project Settting -> Android -> Advanced APK Packaging -> EXtra Setting for <activity> section (\n to separate lines)中添加<intent-fil...原创 2019-05-20 11:33:23 · 1519 阅读 · 1 评论 -
UE4 Spline组件C++样例
#pragma once #include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Components/SplineMeshComponent.h"#include "MySplineActor.generated.h" /** * */UCLASS()class MYRENDERAPP_API A...原创 2019-09-06 10:26:50 · 3354 阅读 · 2 评论 -
UE4 遮挡剔除文档
UE4 遮挡剔除文档Mark一下,方便以后查看。https://docs.unrealengine.com/zh-CN/Engine/Rendering/VisibilityCulling/index.html虚幻引擎4(UE4)提供了可视性和遮挡剔除方法。这些剔除方法用于优化游戏性能。每种方法都可以通过设置是否应绘制到屏幕上来减少关卡中的可见Actor数量。部分方法(如视图视锥和硬件遮挡...原创 2019-09-06 10:43:20 · 4297 阅读 · 0 评论 -
UE4 如何判定一个点是否在屏幕范围内
参考官方UGameplayStatics::ProjectWorldToScreen()函数的方法,进行一些修改调整。用来判定三维世界中一个点是否在屏幕范围内。bool AMyActor::IsInScrrenViewport(const FVector& WorldPosition){ APlayerController *Player = UGameplayStatics::...原创 2019-09-06 10:57:08 · 3912 阅读 · 2 评论 -
UE4 截图处理相关内容
1. 绑定截图回调FScreenshotRequest::OnScreenshotRequestProcessed().AddUObject(this, &UMyWidget::SetExportTexture); //本文由CSDN博主执手画眉弯原创,未经允许不得转载!绑定回调后,截图成功处理后回调到该函数2. 调用截图功能 FScreenshotRequest:...原创 2019-09-06 11:09:33 · 1231 阅读 · 0 评论 -
UE4 动态加载资源,运行内存优化
UE4中可能使用到DataAsset或者存储相关模型数据,基于UE4的运行机制,当前地图包含的所有资源都会在进入该地图时候统一全部加载,这就导致了如果我们在这个地图中只使用到了一部分DataAsset中的数据,但是依然会把其中所有的数据全部加载进来,模型,贴图,材质等,无端增加了许多内存开销。 但是其实UE4本身还给出了另外一种方法。比如用 TSoftObjectPt...原创 2019-04-15 18:09:09 · 4721 阅读 · 1 评论 -
UE4 SizeBox的妙用
SizeBox是一个很有意思的控件,下边通过创建一个自变化宽高的文本输入框来举例讲述它的作用。当然自变化宽高的文本框可以用TextBox(Multi-line)即可实现(C++中为UMultiLineEditableTextBox类型),这里只是举例说明而已。 1.文字为EditTextBox(Multi-line),后边黑色背景为Image控件,把Ima...原创 2019-02-20 11:21:10 · 5819 阅读 · 0 评论 -
UE4 RPC在C++中的使用简例
UE4在网络发面主要通过两种方式来同步,一种是属性复制,另外一种就是RPC。 下面先是我从官网整理的文档,可以先读一遍做基础了解,如果不是很懂,可以接着看完第二部分,再回来看第一部分。(1)官网RPC介绍使用 RPC要将一个函数声明为 RPC,您只需将 Server、Client 或 NetMulticast 关键字添加到UFUNCTION 声明。例...原创 2017-07-21 17:56:14 · 6324 阅读 · 0 评论 -
UE4官方教学视频,中文字幕
早前学习下载的官方教学视频,对于刚接触UE4的人来说很有用。最近在虚幻的交流群中发现很多新人基础认知都不太了解就开始上手项目了,导致很多东西无法跟他们解释,所以我把之前学习用的视频分享了出来。官方的教学视频,版本比较靠前,但是完全可以参考。YouTube翻译的中文,不是很准确,基本也够了。 https://pan.baidu.com/s/1c1HRfcG原创 2017-04-24 09:19:42 · 7025 阅读 · 6 评论 -
UE4 AIController的位置问题
我们可能会在AIController中使用到相关pawn的位置信息,默认情况下,我们可能要先获取pawn,然后再去pawn的位置信息,因为AIController也是一个actor,但是它的位置和它所控制的pawn的位置是不存在对应关系的。 但是在AIController中是有一个属性可以让AIController的Transform信息附着到它控制的pawn上的,这样我们在原创 2017-04-06 15:44:21 · 2717 阅读 · 0 评论 -
UE4 行为树服务节点(Service)简单使用说明
UE4中除了装饰器节点和任务节点之外,还有一个节点成为服务节点。服务节点附着在 Composite 节点上,只要其分支节点被执行,它们便将按所定义的频率执行。它们常用于检查和更新黑板。它们以行为树系统的形态取代了传统平行节点。 使用服务节点时候也很简单,直接在行为树界面点击“New Service”,然后在该任务蓝图中对“Event Receive Tick AI”事件进行编辑,原创 2017-04-06 15:10:10 · 2334 阅读 · 0 评论 -
UE4如何检测目标在锥形视野内
做UE4游戏AI方面经常会遇到一个问题,就是何如判定目标在AI单位的视野范围内,假如我们现在要检测玩家在AI单位的前方60°夹角的视野范围内,如果在的话就把玩家设置为该AI单位的目标。我做了一个简单的Service节点来处理,如图这两大图可能看不清,我把图分开又截了2张。 当然这个简单节点中没有检测两者之间的距离,如果要实际应用肯定还要加...原创 2017-04-19 10:00:55 · 9798 阅读 · 0 评论 -
UE4 地形无碰撞解决方案
最近因为项目要上线,有一些新的地图刚加入测试,打包以后发现其中一个新图的地形(Landscape)在编辑器窗口中可以正常使用,但是当打包出来或者在独立窗口中地形就会无碰撞,玩家控制的actor直接穿越地形掉在了地图下方。大家一起找了许久才发现是因为Landscape被挂在了一个名字叫LandscapeGizmoActiveActor2 的actor下边,才导致了地形无碰撞。 这篇博客原创 2017-03-01 22:41:53 · 7803 阅读 · 3 评论 -
UE4 行为树装饰器(Decorator)简单实用说明(2)
前天写了Decorator的用作条件判定时候的用途,今天来简单写一下它的另外一个作用 :任务节点执行后的结果反馈和处理 首先我们在任务节点执行完毕后,一般会调用FinishExecute函数,反馈说明该任务节点已经执行完毕。 该图为任务节点中调用,在任务节点中执行完毕时候,调用FinishExecute函数,该函数有一个bool类型的参原创 2017-01-19 21:28:41 · 2819 阅读 · 0 评论 -
UE4 行为树装饰器(Decorator)简单实用说明(1)
在行为树标准模型中,条件语句为 Task 叶节点,除成功和失败外不执行任何操作。虽然也可以使用传统的条件 tasks,但还是强烈推荐您使用 Decorator 系统作为条件语句。使用 decorators 而非 tasks 作为条件语句有多个明显优点。 首先,条件 decorators 使行为树 UI 显得更加直观易读。条件语句位于其所控制分支树的根部,因此一旦条件语句未被满足原创 2017-01-17 18:06:27 · 5020 阅读 · 0 评论 -
UE4 自动创建破碎物件的actor(C++版本)
最近无聊时候,创建了一个自动生成破碎物件的Actor, C++版本,主要时测试,实际使用还有些缺陷,后期有时间我会慢慢补足对应功能。下边就上源码了 先是.h文件// Fill out your copyright notice in the Description page of Project Settings.#pragma once#...原创 2017-08-01 16:30:30 · 1895 阅读 · 2 评论 -
UE4制作多语言游戏(本地化功能详解)
本文参考: http://blog.csdn.net/lzt20007/article/details/51308702 https://www.indienova.com/u/trombe/blogread/1642 参考两位大牛文章,亲自测试使用以后重新整理相关操作文档,补齐了一些相关影音图片资源本地化操作...原创 2017-06-08 11:20:37 · 15658 阅读 · 0 评论 -
UE4 安卓触摸事件相关问题
UE4在安卓端获取输入信息时候,似乎会把触摸事件和PC端的鼠标事件弄混在一起,导致出现一些奇怪的问题。1. /* 安卓端会把触摸事件读取成PC端的鼠标事件,因为Turn和LookUp在PC端开发时候一般都绑定在鼠标X轴,Y轴上,* 所以这里要对安卓端做一些特殊处理。*/#if !PLATFORM_ANDROID PlayerInputComponent->BindAx...原创 2019-02-11 15:17:12 · 5458 阅读 · 0 评论 -
UE4 列表下拉刷新功能
1.需要修改引擎的 SScrollBar.cpp文件 197行bool SScrollBar::IsNeeded() const{ //Alter 让列表一直处于可以滑动状态 //return Track->IsNeeded(); return true;} 原来是只有列表中元素过量时候才可以滑动,所以这里需要修改。 2. 需要修改引擎的 S...原创 2019-02-11 15:14:45 · 2294 阅读 · 0 评论 -
UE4 制作UI Button缩放效果
UE4对于按钮本身按下去状态的padding只能让按钮内部元素产生位移,并不能真正的缩放,所以使用Animation来实现这个效果比较好。通过动画实现时候也有两种选择,一种是调节padding大小来实现,这种方法对于按钮内部元素的锚点会产生一定的变化,不太通用,使用起来相对麻烦,第二种是直接调节Transform中的Scale大小来实现,这种就相对简单而且效果也OK。 在下...原创 2018-09-11 09:57:08 · 7252 阅读 · 2 评论 -
UE4 ScrollBox 中的 Button
在 Scroll Box中如果子元素为Button,则应该修改Button的Touch Method类型,从原始的Down and Up 修改为 Precise Tap。不然会因为按钮消息的截断,导致滑动列表不能接收到鼠标左键或者手机中的屏幕点击滑动消息。 顺便附带多排多列滑动列表做法在Scroll Box中添加Wrap Box,然后以Wrap Box为父控件,添加子控件元素。...原创 2018-09-10 19:28:25 · 4046 阅读 · 5 评论 -
关于DestoryComponent崩溃问题
前段时间写了一个方便配置各种特效,音效的StaticMeshActor的工具,其中生成特效时候使用到了SpawnEmitterAtLocation函数,在处理一些永久特效延迟一定时间销毁时候使用了DestoryComponent函数,因为这个暴露出来了一个问题。程序会有一定几率崩溃在DestoryComponent函数里面,但是也不是必现的,这时候就有些蛋疼了。 后来发现其实原创 2017-09-11 10:12:14 · 922 阅读 · 0 评论 -
UnrealVS插件使用简介(UBT编译,UE4热更新)
介绍UnrealVS插件的使用,方便程序猿在做UE4项目时候的UBT编译与热更新问题。原创 2017-08-23 17:43:36 · 8179 阅读 · 0 评论 -
UE4 行为树任务节点
行为树中最终要的节点就是任务节点,作为行为树的叶子节点,它主管了所控制actor的所有动作行为信息。比如我们需要控制一个角色移动,攻击,等待,或者逃跑等等,这些动作都需要放进任务节点中。当然在UE4中,除了我们自己建立的任务节点外,还有系统为我们默认设置的一些节点,比如等待节点,运行另外一个行为树节点,播放声音节点,详情可以参考https://docs.unrealengine.com/lates原创 2017-03-08 14:36:25 · 3494 阅读 · 0 评论 -
UE4 Expose On Spawn 的使用
在UE4中,当我们在spawnactor时候想直接给产生出来的actor赋予一些变量的初始值时候,就需要使用到Expose On Spawn这个功能。根据使用环境和位置,分下边几种情况。 1. 在蓝图中调用SpawnActor产生一个蓝图类的Actor 给要产生的目标actor添加一个变量,勾选上 Expo...原创 2017-08-04 14:13:55 · 4534 阅读 · 0 评论