自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 UE4的本地化

本地化功能启用EditorPreferences…里启用本地化工具可以在窗口Window中打开本地化工具面板文本本地化设置加载策略(Loading Policy)为Game或者Always(默认是Never,是永远不加载的)设置本地化需要读取的文本路径注意 :C++项目,需要勾选Gather from Text Files,不是的C++项目,缺少一些特定文件,如果勾选的话,可能会导致失败添加新Culture,并设置原生Culture(我这里添加的是英文,把中文作为Native(原生)C

2020-11-03 10:48:33 1581

原创 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 2907

原创 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 968

原创 多个Mesh涂色的思路以及实现

初始化记录各个Mesh上的各个点的世界坐标信息在CaptureAltaCanvasRT根据HitPosition和CaptureAltaCanvasRT绘制污渍RT图,并应用到Mesh对应的材质蓝图:部分1对于要涂色的Mesh,添加SplatReceiver组件,在BeginPlay时加入到SplatManager中的RenderList数组中SplatManager在RenderList数组添加完毕后,对数组中每个mesh进行遍历,然后对其进行展开模型(把Mesh的材质替换成Unwar.

2020-10-28 09:33:25 594

原创 AI转向面对目标

利用MoveToLocationOrActor 利用这个函数,可以使得AI走到指定的目标Actor或者位置,然后执行一些操作(在这里是攻击)但是有一个问题,AI在达到目标之后,其可能不是面对着目标的。所以需要修正AI的朝向,让其面对目标 。解决思路:**旋转:**得到朝向目标点的Rotaion,将Mesh的Rotation利用RInterpTo函数平滑靠近(注意这里要叠加原有的Mesh的Rotation值)**动画:**根据当前AI的朝向和对目标朝向得到对应的RotatWeight,用于控制...

2020-10-28 09:33:05 411

原创 inl文件

inl文件:inl文件是内联函数的源文件。内联函数通常在C++头文件中实现,但是当C++头文件中内联函数过多的情况下,我们想使头文件看起来简洁点,像普通函数那样将内联函数声明和函数定义放在头文件和实现文件中,具体做法将是:将内联函数的具体实现放在inl文件中,然后在该头文件末尾使用#include引入该inl文件。//inl_demo.h#ifndef _INL_DEMO_H_#define _INL_DEMO_H_template<typename T>T return_max

2020-10-27 14:31:44 4035

原创 UE中创建自定义Asset类

需要做的是三个内容自定义的资产类:(继承UObject),作为自定义资产的数据模型类.相应的Factory类:(继承UFactory),这个工厂类用于被UE4引擎识别,作为可以在ContentBrowser中创建资产(Asset)相应的AssetTypeActions:指定了诸如Asset的名称,应属于的类别,颜色等内容,在模块中实现自定义资产的类型注意,在4.25版本之前,只需要1,2这两个内容就可以实现上图的效果(默认自定义资产分类在MisCellaneous下),4.25版本之后必须要..

2020-10-27 14:31:18 3532 1

原创 对C++中的内存对齐理解

文章目录什么是内存对齐:为什么需要内存对齐:内存对齐的规则什么是内存对齐:内存对齐:计算机对于基本数据类型在内存中的存放位置有限制,数据的首地址是K(通常为4或8)的倍数//32位系统#include <iostream>//32位系统struct { int x; char y;};int main(){ std::cout <<"S:" <<sizeof(S) << "\n";//// 输出8 retur

2020-10-27 14:31:04 257

原创 ToolBarMenu添加自定义Slate组件

/***在Modlus文件中 将自定义Slate添加到ToolMenu中**/{UToolMenu* ToolbarMenu = UToolMenus::Get()->ExtendMenu("LevelEditor.LevelEditorToolBar"); { FToolMenuSection& Section = ToolbarMenu->FindOrAddSection("Settings"); {

2020-10-27 14:30:46 357

原创 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 407

原创 UE4 ProjectileMovement Component 延迟启动

遇到的问题是,对于投掷的物品,刚开始拿在手上(不发射出去),发射出去时根据调整的角度发射。但是ProjectileMovement Component 中发射参数 Initial Speed 和velocity参数只能初始化的时候设置,再后期动态改时没有作用的。看了ProjectileMovement Component 中的源码发现void UProjectileMovementComponent::InitializeComponent(){ Super::InitializeCompone

2020-10-27 14:28:50 1369

原创 SphereTrace中Hit Result里的Location和ImpactPoint

球形检测中的Location和ImpactPoint在用球形检测的时候发现Location输出的是球体的中心位置,而ImpactPoint输出是接触点的位置

2020-10-27 14:28:40 1320 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 1064

原创 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 1306

原创 UE4中的智能指针

智能指针库:减轻内存分配与追踪负担 ,C++11中智能指针的定义实现共享指针TSharedPtr共享引用 TSharedRef(不可为空)弱指针 TWeakPtr助手类与函数助手类与函数MakeShareable()-用于从C ++指针初始化共享指针(启用隐式转换)TSharedFromThis-您可以从this派生自己的类,以从“ this”获取TSharedRefStaticCastSharedRef()-静态转换实用工具函数,通常用于向下转换为派生类型。ConstCastSha

2020-10-27 14:26:58 1644

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除