
UE4
文章平均质量分 51
北极熊的奋斗史
我是一个程序员,至少现在是。
展开
-
UE4 C++ 记录UE4查找点距离直线最近的点
1. 计算点距离线段上最近的点坐标FVector FMath::ClosestPointOnLine(const FVector& LineStart, const FVector& LineEnd, const FVector& Point){ // Solve to find alpha along line that is closest point // Weisstein, Eric W. "Point-Line Distance--3-Dimensional.原创 2022-02-22 16:08:53 · 1536 阅读 · 0 评论 -
C++ UE4 将凸多边形通过最优解拆分为多个三角形
记录一下根据网络内容完成的算法,将一个凸多边形拆分为多个三角形的算法,语法借助了UE4。如有侵权,请私信我删除。// 计算凸多边形的最优三角形切分void MinWeightTriangulation(const TArray<FVector>& arr, TArray<int>& ArrTriangle){ if (arr.Num() < 3) return; float** t = new float* [arr.Num()]; int原创 2022-02-15 18:26:18 · 1180 阅读 · 0 评论 -
C++ UE4 将凹多边形拆分为多个凸多边形
记录一下根据网络内容完成的算法,将一个凹多边形拆分为多个凸多边形的算法,语法借助了UE4。如有侵权,请私信我删除。/*从多边形的有序的点数组获取顶点和三角面数据信息(凹凸多边形) 参数1: 顶点数组 参数2: 是否是逆时针 */TArray<TArray<FVector>> GetPolygonDataFromOrderVertexs(TArray<FVector> _points, bool _antiClockwise){ int t_pointsN原创 2022-02-15 18:22:53 · 2853 阅读 · 4 评论 -
UE4 C++ 取消VS编译优化的宏
UE4 C++ 代码用VS编译调试时,经常出现部分代码无法调试,断点值显示异常,各别函数调试不进入等情况,这是因为编译代码时被优化了,只需要将想要调试的代码段包含在以下两段宏中间即可。PRAGMA_DISABLE_OPTIMIZATION//想要调试的代码//........PRAGMA_ENABLE_OPTIMIZATION...原创 2021-12-28 11:19:12 · 2796 阅读 · 0 评论 -
UE4 C++ 常用函数记录
1.创建Actor对象创建Actor对象,需要使用UWorld::SpawnActor()接口,此函数不能放在构造函数,如下所示:AMyActor* MyActor = GetWorld()->SpawnActor<AMyActor>(FVector(150, 0, 20), FRotator::ZeroRotator);2.创建组件在UE4中,为Actor创建组件,可以使用UObject::CreateDefaultSubobject()模板函数,这个函数只能在构造函数原创 2021-04-29 09:54:03 · 686 阅读 · 0 评论 -
UE4 C++ 基于Cesium Unreal 插件的二次开发问题记录
1. 如需继承Cesium Unreal的类进行重写,需要再xxxxx.Build.cs中增加C++17的支持,添加如下一行代码即可。CppStandard = CppStandardVersion.Cpp17;2. Cesium Unreal 相机控制类为:AGlobeAwareDefaultPawn原创 2021-04-08 15:01:44 · 6086 阅读 · 12 评论 -
UE4 C++ 子线程的创建及使用
仅作为学习UE4的记录,请勿转载。注意事项:在GameThread线程之外的其他线程中,不允许做一下事情不要 spawning / modifying / deleting UObjects / AActors不要使用定时器 TimerManager不要使用任何绘制接口,例如 DrawDebugLine如果想在主线程中异步处理(也就是分帧处理),可以使用以下接口(在 Async.h 中)AsyncTask(ENamedThreads::GameThread, [&]() {原创 2021-04-01 14:54:05 · 1990 阅读 · 2 评论 -
UE4 C++ 记录几个自己常用的算法函数
// 判断三个点是顺时针还是逆时针,>0 逆时针 <0 顺时针 =0 一条线上 inline float Clickwise(const FVector2D& A, const FVector2D& B, const FVector2D& C) { return (B - A) ^ (C - A); }原创 2021-03-26 11:45:13 · 1866 阅读 · 0 评论 -
UE4 C++ 通过Spline绘制任意道路
仅作为学习UE4的记录,请勿转载。先看效果图上关键源码。1. 通过两个点和点的切线向量构建一个SplineMeshCompoent。USplineMeshComponent* ASplineRoadActor::CreateSplineMeshComponent(const FVector& StartPos, const FVector& StartTangent, const FVector& EndPos, const FVector& En.原创 2021-03-17 11:49:59 · 3983 阅读 · 6 评论 -
UE4 C++ 通过gdal2.3.1插件读取矢量数据文件
此处读取的线类型的文件,不过其他类型的都相差不大,可作为参考。#include <gdal.h>#include <cpl_conv.h>#include <gdal_priv.h>#include <ogrsf_frmts.h>#include <HAL/FileManager.h>#include <HAL/FileManagerGeneric.h>#include <ogr_spatialref.h>原创 2021-03-16 19:22:18 · 2561 阅读 · 0 评论 -
UE4 C++ 在屏幕上绘制线和文字的方法
1. 通过C++代码,在屏幕上绘制点、线、圆等图形来进行调试或显示效果。void DrawDebugLine(const FVector& StartPost, const FVector& EndPos, const FLinearColor& LineColor){ ULineBatchComponent* const LineBatcher = GetWorld()->PersistentLineBatcher;//GetDebugLineBatcher(Get原创 2021-03-16 17:00:11 · 4954 阅读 · 0 评论 -
UE4 分享下FString与char*的转换
1. FString转TCharTChar* c = (*FString)2. TChar* 与 char*的互相转换,主要是使用下面的四个宏定义。TCHAR_TO_ANSI(str)ANSI_TO_TCHAR(str)TCHAR_TO_UTF8(str)UTF8_TO_TCHAR(str)原创 2021-03-09 17:30:58 · 8603 阅读 · 0 评论 -
UE4 C++ 记录几个有关材质的知识点
材质可以通过蓝图进行设置,也可以通过c++动态给材质设置参数,进行修改材质的数据,这里记录一些有关材质的知识点,如有错误,欢迎指正。1. c++代码中创建mesh// 在Actor类构造函数中自定义mesh或者获取mesh对象UProceduralMeshComponent * mesh = CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("terrainMesh")); RootComponent = mesh;..原创 2021-03-04 19:37:42 · 2638 阅读 · 1 评论 -
UE4 学习记录零 学习记录总章目录
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文记录所有的UE4学习记录链接,便于跟进阅读。 UE4 学习记录一 创建角色,并控制其移动https://blog.youkuaiyun.com/chenxipu123/article/details/113181002 ...原创 2021-02-01 16:39:54 · 1127 阅读 · 0 评论 -
UE4 学习记录九 给人物添加血条,随着时间自动掉血
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是在场景中添加一个血条,随时间自动掉血。1. 打开学习记录八最后完成的工程(https://blog.youkuaiyun.com/chenxipu123/article/details/113403125)。2. 双击主窗口下方内容区域的“MyCharacter”蓝图类,进入蓝图编辑窗口。3. 在编辑窗口的左下方找到“我的蓝图”窗口,点击“变量”条目右侧的“+变量”按钮,添加一个变原创 2021-02-01 16:28:42 · 3403 阅读 · 0 评论 -
UE4 学习记录八 给场景中添加背景音乐和动画音效,运动加速效果
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是给场景中添加背景音乐和动画的音效。1. 打开学习记录六的完成的工程,从网络上下载一个游戏背景音乐和一个石头门开门的音效,注意:都需要音乐文件为wav格式。这里给一个我的音乐文件的资源包()。2. 将音乐文件拖入主窗口下方的内容区域,我这里是BirdsSong.wav(背景音乐)和OpenStoneDoor.wav(开门音效)。3. 双击“BridsSong”图标下方的文原创 2021-02-01 09:42:00 · 3404 阅读 · 0 评论 -
UE4 学习记录七 修改地面材质,添加高山、草地、树木、石头等
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是修改关卡的地面材质,给地面添加一些草丛,小树,石头等元素。1. 打开之前学习记录五(https://blog.youkuaiyun.com/chenxipu123/article/details/113246732)完成后的工程。2. 点击模式-》地形,进入地形编辑界面,调整地形高度与关卡的地面高度一致。3. 在右侧界面,修改分段大小为7×7 四边形,点击创建,完成地形创建。如原创 2021-01-29 17:02:37 · 6139 阅读 · 0 评论 -
UE4 学习记录六 蓝图中C++的常用逻辑操作示例
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是展示在蓝图里面,如何使用C++的常用操作,比如加减乘除,位运算,逻辑操作:if else、while、for、switch等。1. 加、减、乘、除2. 位运算符 & | ~3. 逻辑运算符号 || && !4. if else 条件判断5. Flip Flop - 触发器,用于依次循环执行6. while 循环操作.原创 2021-01-28 16:06:11 · 1469 阅读 · 0 评论 -
UE4 学习记录五 使用合体触发器触发过场动画移动其他物体 开门
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是通过过场动画,实现物体移动并旋转,通过人物运动触发触发器,然后播放动画。1. 打开学习记录二完成的工程(https://blog.youkuaiyun.com/chenxipu123/article/details/113182522)。选中地板,修改缩放数值,将地板变大,防止动画物体没有施展空间。2. 拖拽左侧立方体或下方Cube蓝图组件到视口窗口内,调整变换属性,使立方体看起来像一扇比原创 2021-01-27 15:25:16 · 3271 阅读 · 3 评论 -
UE4 学习记录四 开始/结束游戏,关卡的切换
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是创建两个关卡,其中一个关卡可以开始、结束游戏。1. 使用上一个博文创建的工程,或新创建一个工程。2. 点击 文件-》新建关卡-》选择空白关卡,保存当前关卡,此处保存为“StartLevel”。3. 内容空白处,鼠标右键点击,选择用户界面-》控件蓝图,此处修改名称为“StartWidget”。4. 双击打开控件蓝图,在中间窗口区域添加按钮、按钮上添加文件,修改文件为“原创 2021-01-27 09:43:43 · 5226 阅读 · 4 评论 -
UE4 学习记录三 创建一个从高空掉落的会摔碎的石头
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是创建一个可破坏的静态网格物体,从高空掉落,被摔碎。1. 创建UE4工程。2. 设置-》插件-》Physics-》Apex Destruction -》已启用,勾选,立即重启软件。3. 选择基础,将立方体(静态网格物体即可)拖拽到下方内容窗口中,选择复制到此处。4. 鼠标右键点击上一步复制的立方体,选择 “创建可破坏网格体”5. 此时会进入可破坏的网.原创 2021-01-26 18:50:17 · 1317 阅读 · 0 评论 -
UE4 学习记录二 给角色添加骨架,皮肤,及运动动画
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。为了防止误导他人,请勿转载,请勿转载,请勿转载。本文的主题是给角色添加骨架、皮肤、运动动动画。1. 参见上一个学习记录,创建可运动的角色。https://blog.youkuaiyun.com/chenxipu123/article/details/1131810022. 下载角色的骨骼皮肤的资源,并导入项目。此处使用UE4的免费资源AnimStarterPack,可通过UE4自带的虚幻商城下载,下载完成后将资源文件放入项目的content文件夹.原创 2021-01-26 16:53:04 · 3161 阅读 · 0 评论 -
UE4 学习记录一 创建角色,并控制其移动
这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉。原创 2021-01-26 15:17:29 · 2255 阅读 · 0 评论