UE5 Lyra是虚幻引擎5中新出现的一种视觉编程语言。相较于传统的代码编程,用视觉编程可以让你更直观地编辑逻辑、操控游戏。本文将从多个方面对UE5 Lyra进行详细的阐述,并提供相应的代码示例。
一、概述
UE5 Lyra建立在Blueprint的基础上,是一种更加直观、易于理解的视觉编程语言。与传统的蓝图类比,Lyra可以使程序的可读性和可维护性更高。Lyra是一个深度嵌入到虚幻引擎编辑器中的编程语言,拖放节点,连接它们,设置参数等操作,用于表达想要实现的逻辑,并生成可执行的代码。
Lyra支持所有 Blueprint 的特征,包括事件、变量、函数调用以及组件交互。Lyra自身特有的特点主要是分层模式。每个 Lyra 篮子都包含一个封装的逻辑块,这个块可以被嵌套在另一个 Lyra 篮子中使用。这样,程序可以很好地组织起来,更加模块化。
二、基础语法与概念
在我们深入了解 Lyra 之前,我们需要了解一些基础知识。下面是一个简单的代码示例:
// 打印输出文本 "Hello World!"
Print String("Hello World!");
// 表示注释,Print String是一个函数调用,”Hello World!”是函数的参数。这个示例表明 Lyra 也支持与传统编程语言一样的语法。
当我们使用 Lyra 建立一个新的 Program 或创建一个 Lure 篮子时,我们会看到下面的界面:
如图所示,我们可以选择从空项目开始或者导入已有的 Lyra 篮子。在开始前,我们需要先理解一些 Lyra 的概念。
3.1 Program
一个 Program 就是一个 Lyra 程序,可以拥有多个 Lure 篮子。Program 就像一个传统蓝图的 Level Blueprint,是程序的主入口。
下面是一个简单的示例。创建一个新的 Program,然后拖入两个 Lure 篮子:
在一个 Program 中,你可以执行以下操作:
- 添加、删除或管理 Lure 篮子
- 设置程序、篮子或节点的说明信息
- 保存或导出程序和篮子
- 添加或编辑全局变量和宏
- 导入或导出 JSON 文件
3.2 Lure
Lure 代表着用户在 Lyra 中编写的逻辑。它可以嵌套在其他 Lure 中,在 Lyra 中形成复杂的逻辑层次结构。在Lure中,你可以执行以下操作:
- 添加或删除节点
- 连接、断开、编辑和删除节点连接线
- 更改节点的名称、参数值等等
- 撤销和重做操作
下面是一个简单的示例。创建一个空 Lure,然后从左侧菜单栏拖动一个打印字符串节点到 Lure 篮子中:
3.3 节点
节点是 Lyra 中的基本操作单元。它只做一件事情,然后把结果传递给下一个节点。节点可以是函数的调用、变量的获取、数组的操作等。在创建节点时需要选择节点类型,每种类型都有对应的参数和功能。
下面是一个简单的示例。在一个 Lure 篮子中,使用键盘输入节点取得一个整数值,然后相乘后打印输出:
首先,我们需要添加一个带有输出值的键盘输入节点。然后,我们添加一个带有两个输入和一个输出的乘法节点。最后,我们添加一个打印输出节点。
这些节点都使用默认的参数值。我们只需要连接所有节点,并将输入框上的默认值改为我们所需的值,然后运行程序即可。
3.4 连接线
连接线连接了两个节点,将第一个节点的输出传递给第二个节点的输入。然后第二个节点执行一些操作,并将输出传递给下一个节点,这样不断的连接。在 Lure 中,你可以连接多个节点,形成功能复杂的逻辑结构。
下面是一个简单的示例。创建两个输入节点,然后将它们相加后输出:
三、使用示例
现在,我们来实现一个更实用的例子。在这个例子中,我们将创建一个东西西方向的相机,并实现玩家能够通过鼠标移动来控制摄像机的旋转。代码示例如下:
// 视角旋转
// 得到鼠标在视口中的位置
Get Mouse Position(X, Y);
// 移动摄像机垂直方向上
Add Controller Pitch Input(Y);
// 移动摄像机水平方向上
Add Controller Yaw Input(X);
这个示例中,我们使用了三个 Lyra 常用的节点:Get Mouse Position、Add Controller Pitch Input 和 Add Controller Yaw Input。按照我们上面的步骤,我们可以通过拖拽来建立这个 Lure 篮子,并连接这三个节点,加上一些参数值来运行我们的程序。
下面是这个例子的Lure示例图:
运行程序之后,我们就可以使用鼠标来移动摄像机了。
总体来说,Lyra 是一个易学易用的视觉编程语言。在虚幻引擎开发中,使用 Lyra 来建立逻辑可以大大提高代码可读性和可维护性,同时使游戏开发变得更加高效。
原创文章,作者:KBLNO,如若转载,请注明出处:https://www.506064.com/n/372756.html