![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UE4
天才宝藏
这个作者很懒,什么都没留下…
展开
-
UE4的本地化
本地化功能启用EditorPreferences…里启用本地化工具可以在窗口Window中打开本地化工具面板文本本地化设置加载策略(Loading Policy)为Game或者Always(默认是Never,是永远不加载的)设置本地化需要读取的文本路径注意 :C++项目,需要勾选Gather from Text Files,不是的C++项目,缺少一些特定文件,如果勾选的话,可能会导致失败添加新Culture,并设置原生Culture(我这里添加的是英文,把中文作为Native(原生)C原创 2020-11-03 10:48:33 · 1653 阅读 · 0 评论 -
4.21版本工程以后材质里CustomNode添加.usf文件失败解决办法
在4.22版本的材质编辑器里想要把在自己写的Global.usf文件加入,结果发现一直报错,找不到该文件。报错:Can‘t map virtual source path “/Project/Global.usf”Directory mapping are:/Engine……找了一下,发现是因为4.21版本以后,渲染框架的模块改名了。原因解决办法:如果是c++工程"工程名.h"中代码改为:#pragma once#include "CoreMinimal.h"#include "M原创 2020-10-28 09:33:53 · 1015 阅读 · 0 评论 -
多个Mesh涂色的思路以及实现
初始化记录各个Mesh上的各个点的世界坐标信息在CaptureAltaCanvasRT根据HitPosition和CaptureAltaCanvasRT绘制污渍RT图,并应用到Mesh对应的材质蓝图:部分1对于要涂色的Mesh,添加SplatReceiver组件,在BeginPlay时加入到SplatManager中的RenderList数组中SplatManager在RenderList数组添加完毕后,对数组中每个mesh进行遍历,然后对其进行展开模型(把Mesh的材质替换成Unwar.原创 2020-10-28 09:33:25 · 616 阅读 · 0 评论 -
AI转向面对目标
利用MoveToLocationOrActor 利用这个函数,可以使得AI走到指定的目标Actor或者位置,然后执行一些操作(在这里是攻击)但是有一个问题,AI在达到目标之后,其可能不是面对着目标的。所以需要修正AI的朝向,让其面对目标 。解决思路:**旋转:**得到朝向目标点的Rotaion,将Mesh的Rotation利用RInterpTo函数平滑靠近(注意这里要叠加原有的Mesh的Rotation值)**动画:**根据当前AI的朝向和对目标朝向得到对应的RotatWeight,用于控制...原创 2020-10-28 09:33:05 · 452 阅读 · 0 评论 -
UE4中的智能指针
智能指针库:减轻内存分配与追踪负担 ,C++11中智能指针的定义实现共享指针TSharedPtr共享引用 TSharedRef(不可为空)弱指针 TWeakPtr助手类与函数助手类与函数MakeShareable()-用于从C ++指针初始化共享指针(启用隐式转换)TSharedFromThis-您可以从this派生自己的类,以从“ this”获取TSharedRefStaticCastSharedRef()-静态转换实用工具函数,通常用于向下转换为派生类型。ConstCastSha原创 2020-10-27 14:26:58 · 1716 阅读 · 0 评论 -
UE4 C++ VS中报错 fatal error C1083 找不到包含文件,解决办法
会出现这个错误,错误的原因以及操作过程:操作过程首先是因为我在VS中需要创建一个C++类。图上,我想要在自己的插件文件夹中,创建一个类(比如说Test类)。结果创建出来之后,Test.h文件和Test.cpp文件都不在我选择的文件路径下,反而是在工程的Source路径下。我想那就移动一下位置好了,在VS中移动了这两个类的文件,(注意这边就是出现报错的关键点)。然后我在同级目录下引用Test.h头文件,报错fatal error C1083找不到包含文件Test.h。原因在VS中移动文件原创 2020-10-28 09:34:14 · 3016 阅读 · 0 评论 -
UE中创建自定义Asset类
需要做的是三个内容自定义的资产类:(继承UObject),作为自定义资产的数据模型类.相应的Factory类:(继承UFactory),这个工厂类用于被UE4引擎识别,作为可以在ContentBrowser中创建资产(Asset)相应的AssetTypeActions:指定了诸如Asset的名称,应属于的类别,颜色等内容,在模块中实现自定义资产的类型注意,在4.25版本之前,只需要1,2这两个内容就可以实现上图的效果(默认自定义资产分类在MisCellaneous下),4.25版本之后必须要..原创 2020-10-27 14:31:18 · 3801 阅读 · 1 评论 -
ToolBarMenu添加自定义Slate组件
/***在Modlus文件中 将自定义Slate添加到ToolMenu中**/{UToolMenu* ToolbarMenu = UToolMenus::Get()->ExtendMenu("LevelEditor.LevelEditorToolBar"); { FToolMenuSection& Section = ToolbarMenu->FindOrAddSection("Settings"); {原创 2020-10-27 14:30:46 · 379 阅读 · 0 评论 -
Slate中的计时器的使用
官方文档中关于 Slate中的计时器 内容 /** * Registers an "active timer" delegate that will execute at some regular interval. TickFunction will not be called until the specified interval has elapsed once. * A widget can register as many delegates as it needs. Be caref原创 2020-10-27 14:29:24 · 425 阅读 · 0 评论 -
UE4 ProjectileMovement Component 延迟启动
遇到的问题是,对于投掷的物品,刚开始拿在手上(不发射出去),发射出去时根据调整的角度发射。但是ProjectileMovement Component 中发射参数 Initial Speed 和velocity参数只能初始化的时候设置,再后期动态改时没有作用的。看了ProjectileMovement Component 中的源码发现void UProjectileMovementComponent::InitializeComponent(){ Super::InitializeCompone原创 2020-10-27 14:28:50 · 1449 阅读 · 0 评论 -
SphereTrace中Hit Result里的Location和ImpactPoint
球形检测中的Location和ImpactPoint在用球形检测的时候发现Location输出的是球体的中心位置,而ImpactPoint输出是接触点的位置原创 2020-10-27 14:28:40 · 1432 阅读 · 1 评论 -
宏GENERATED_UCLASS_BODY()与GENERATED_BODY()的区别
在4.6版本中release note有以下说明:You now define and use “normal” C++ constructors for your classes. You can use parameterless -constructors too now!You no longer need to supply a category for your properties to expose them to the editor or Blueprints. You’ll ge原创 2020-10-27 14:28:26 · 1130 阅读 · 0 评论 -
Slate中的SNew与SAssignNew区别
SNew和SAssignNew都是创建一个新的Slate对象。主要区别是:返回值类型的不同。SNew返回的是TShardRef,SAssignNew返回的TSharePtr。 // Slate小部件是通过SNew和SAssignNew构造的。 //SNew TSharedRef <SButton> MyButton = SNew(SButton); //SAssignNew TSharedPtr <SButton> MyButton; SAssi原创 2020-10-27 14:28:02 · 1367 阅读 · 0 评论