|
Unreal Engine 4 画线DrawLines 画轨道
前言
刚接触UE4没几天,从头开始实现了画轨道的功能,自己记录一下实现过程以及遇到的问题。
环境配置
因为电脑上先安装的VS2017,后来才安装的UE4,所以在UE4用到VS的时候有些问题,打不开VS,后来发现是一些需要的组件没有安装,所以搜一下UE4+VS2017配置的教程,看看安装的时候需要哪些组件,再在VS里添加上就好了。
实现步骤
文件–新建项目–空白蓝图,随便起了个项目名 draw。
文件–新建C++类,继承Actor,然后next,命名自己随意写,我的是 drawlineActor,完成后会打开VS,有.h和.cpp文件。在.cpp文件的BeginPlay中添加以下代码,在这里只是试验一下功能,具体在哪里,看自己需求。
- TArray<FBatchedLine> lines;
- TArray<FVector> mVertexes;
- mVertexes.SetNum(4);//需要先设置个数,不然会报错,之前报了些乱七八糟的错误,经大神指点才知道需要设置
- mVertexes[0].X=-180.f;//这里自己随意设置数值,为了试验功能而已
- mVertexes[0].Y=0.f;
- mVertexes[0].Z=32.f;
- mVertexes[1].X=-215.f;
- mVertexes[1].Y=-120.f;
- mVertexes[1].Z=32.f;
- mVertexes[2].X=-260.f;
- mVertexes[2].Y=-120.f;
- mVertexes[2].Z=30.f;
- mVertexes[3].X=-200.f;
- mVertexes[3].Y=40.f;
- mVertexes[3].Z=40.f;
- ULineBatchComponent*const LineBatchComponent =GetWorld()->PersistentLineBatcher;for(auto i =0; i < mVertexes.Num()-1; i++){
- FVector start =FVector(mVertexes[i].X, mVertexes[i].Y, mVertexes[i].Z);
- FVector end =FVector(mVertexes[i +1].X, mVertexes[i +1].Y, mVertexes[i +1].Z);
- FBatchedLine line =FBatchedLine(start,
- end,FLinearColor(1,0,0,1),//设置颜色、透明度0,// 设置显示时间。设为0,表示永久显示0.3,4);
- lines.Add(line);}
- LineBatchComponent->DrawLines(lines);
复制代码添加以上代码后,肯定报错了,因为没有添加相应的头文件。现在在.h中添加相应头文件,但是需要保证generated.h在最后。
- #include "Math/Vector.h"
- #include "Components/LineBatchComponent.h"
复制代码
虽然这几个地方会标红,但是可以忽略,待会编译运行之后就没了。我也不知原因。
5. 在UE4中,选择新建空白蓝图类,点击之后,在所有类中,搜索自己创建的类,我的是 drawlineActor。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190824165220710.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk4OTgyNQ==,size_16,color_FFFFFF,t_70
6. 创建之后,在这里找到他,并将它拖到场景中,任意位置就可以。
7. 将VS中的代码进行生成,结束后在UE4点击编译,结束后,播放。
清除线,重新画
因为项目需要,所以得不定时的把之前的线清除掉,重新根据新的数据画线,经过很多尝试,才知道是这样清除。最后加这两行代码。- LineBatchComponent->BatchedLines.Empty();
- lines.Empty();
复制代码 代码调试
期间遇到很多问题,比如线画不出来等,所以就需要调试代码,调试步骤见以下链接,讲的挺清楚的。
UE4–VS代码调试模式 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|