虚幻4 文档翻译<一> Casting节点

19 篇文章 4 订阅
14 篇文章 1 订阅

最近在学习虚幻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)特定的蓝图类型。
这里写图片描述
在上图中,1部分创造了一个 Save Game Object物体,并且声明为SaveGameObject类型变量,然后将这个物体cast to为 MySaveGame 类蓝图。
2部分和上面的过程一样。

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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值