虚幻4 文档翻译 Casting节点

最近在学习虚幻4的蓝图系统,蓝图就是可视化编程。从某种意义上说,可以把蓝图理解成一种“编程语言”,而每个蓝图就是一个可执行的脚本。这样来理解的话,什么蓝图继承、类蓝图、蓝图接口等就十分简单了。蓝图作为一种”编程语言“,自然有许多自己的特性,变量、函数的定义,流程的控制等等,这些概念并不难理解。

casting节点是蓝图里一个有趣的节点,最近频繁用到,但是都不太完全理解,索性今天看了一下官方文档,突然豁然开朗,一下子明白了许多。为了加深理解,特意把casting这页(https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/CastNodes/index.html)翻译了下,放在这里吧。

Casting——类型转换
本页一共包括:
1. cast的使用情形
2. cast使用的一个例子
3. cast(类型转换为)为目标蓝图
4. 其他类型的casting

当在蓝图里使用cast to 节点时,简单地说,你是想检测这个你要进行类型转换(cast)的物体是否是你想要转换成的类型。或者说,你现在写了一个特殊的character类蓝图(就叫做MyCharacter吧),并且在里面定义了一些变量、函数,声明了这个蓝图为默认的pawn 类蓝图。
如果你想从其他蓝图里获得player character的属性,你可以使用Get Player Character节点,然后使用通常的做法去设置、获得它的坐标、旋转。但是,你不能得到你刚刚在MyCharacter里定义的属性和函数,因为这个蓝图仅仅是player character类,而不是MyCharacte类。
通过使用 Get Player Character 节点,然后使用 Cast To MyCharacter节点,你就能够这样进行逻辑编写:如果 Player Character是MyCharacter,那么我要获得它的变量、函数,事件等等。

cast的使用情形
下面是几个可以使用蓝图cast节点的情形
1. 在关卡中,你的角色和某个actor互动,并且造成了你的角色发生了一些变化。
比如,角色捡到了宝贝,使自己的血量增加了。
比如,敌人走在雪中或者泥地,造成他们的移动速度变慢。
(这里就需要cast一下和角色互动的到底是不是雪中、泥地、宝贝等)
2. 你想把变量传递给hud或者你的ui控件,保存游戏,控制或者游戏模式。
比如,从Character蓝图传递玩家或者敌人的血量到HUD假面或者别的空间蓝图。
3. 你有大量的子蓝图,你希望获得某个子蓝图。
你建立了猫,狗,鸟蓝图,它们继承了动物蓝图,拥有它的定义函数。将动物蓝图类型转化为(Cast to)鸟蓝图,然后执行飞行函数。
4. 你的某个蓝图依赖于其他蓝图的变量、事件、函数。
将电池插入手电筒会让手电筒发光,而这个取决于电池的电量。
5. 你想获得大量的同类蓝图,一次性的对它们做出应用。
在关卡中,你放置了许多灯泡,你想当某个事件发生时将他们全部打开或关闭。

cast使用的一个例子
这部分参考原文吧,不是太难理解。

cast(类型转换为)为目标蓝图
有些时候,为了获得某个变量你可以将这个变量转换为(Cast to)特定的蓝图类型。
虚幻4 文档翻译 Casting节点_第1张图片
在上图中,1部分创造了一个 Save Game Object物体,并且声明为SaveGameObject类型变量,然后将这个物体cast to为 MySaveGame 类蓝图。
2部分和上面的过程一样。

其他类型的casting
有一些特殊的函数可以用来(将某个变量)Cast to不同类型的蓝图。

你可能感兴趣的:(虚幻4,蓝图,UE4)