UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!

目录

  • [1 构造脚本(Construction Script)](#1 构造脚本(Construction Script))
    • [1.1 介绍](#1.1 介绍)
    • [1.2 案例1:利用样条组件程序化生成树木](#1.2 案例1:利用样条组件程序化生成树木)
    • [1.2 案例2:利用样条组件和样条网格体组件程序化生成道路](#1.2 案例2:利用样条组件和样条网格体组件程序化生成道路)

1 构造脚本(Construction Script)

1.1 介绍

问题:为什么要先介绍一下构造脚本?
解答:构造脚本也属于编辑器工具的一种,构造脚本在非运行时 就能被调用 ,因此可以在编辑场景 时就能通过构造脚本来快速搭建场景。
局限性:构造脚本的功能仅仅只能作用一个Actor,也不能修改内容浏览器(content)中的资产 ,当我们想制作一些更加强大的编辑器功能时,就需要用到编辑器工具控件编辑器工具蓝图了(感兴趣的话可以看我其它的文章)
构造脚本函数适合用来构建程序化 Actor 等等。只要把Actor拖入场景中就会运行

每个 Actor 蓝图都会有构造脚本函数,该函数会在 Actor 放入场景中就运行(不需要运行游戏),或者修改actor的属性时也会被再次调用。

1.2 案例1:利用样条组件程序化生成树木

本案例适用于程序化点模型,例如,树木、路灯、建筑物等;
在制作一个智慧城市案例中,道路两旁往往需要种上不同种类的树木。一颗一颗的拖入场景中效率低,此时就可以制作一个程序化的构造脚本函数提高效率。

  1. 实现思路:根据模型的数量等分样条线,获取等分后的相对位置,然后创建静态网格体组件然后设置位置。设置两个变量:Count(整型变量,用于设置模型的数量)、StaticMesh(静态网格体,用于自定义模型)
  1. 蓝图代码如下图所示(可以用新标签页点开查看全图)
    3.结果展示

1.2 案例2:利用样条组件和样条网格体组件程序化生成道路

本案例适用于程序化线性模型,例如,道路、围栏、水管等;

  1. 实现思路:根据样条点计算样条网格体组件 数量,然后创建样条网格体组件然后以相邻的两个样条点作为起始和结束。设置一个变量:StaticMesh(静态网格体,用于自定义模型)
  1. 蓝图代码如下图所示(可以用新标签页点开查看全图)
    3. 结果展示
相关推荐
zhangzhangkeji5 天前
UE5 C++(71):文件是否存在,文件夹是否存在,FPaths :: FileExists( const FString & InPath) ;
ue5
妙为5 天前
UE5角色穿过石头穿模
ue5·unreal engine5·角色穿越石头·穿模
技术策划Boring6 天前
2025年工作复盘:开放世界3A项目配置管线与性能监控的探索
游戏·ue5·虚幻·p4·perforce
zhangzhangkeji8 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi91119 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji9 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5
zhangzhangkeji11 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji11 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5
zhangzhangkeji12 天前
UE5线程进阶(2-1):枚举类EAsyncExecution,作业类TAsyncRunnable、TAsyncQueuedWork,及全局线程函数 Async(..),及线程调用的 4 种方法总结
ue5
zhangzhangkeji13 天前
UE5线程进阶(1):
ue5