返回介绍

节点与继承

发布于 2024-01-08 20:55:53 字数 4611 浏览 0 评论 0 收藏 0

每次添加新节点,都能看到这样的界面:

节点继承关系

这些节点类型之间呈现出一种树状结构,层层递进,这样布局是怎么来的呢?

我们用 Button 节点举例,它的完整位置在 Node -> CanvasItem -> Control -> BaseButton -> Button ,开头的 Node 表示这是个节点,CanvasItem 表示这是一个 2D 绘制节点,Control 表示 UI 节点,然后就是 Button 按钮节点。

现在添加一个 Button 到场景中,我们能看到它的属性列表如下:

Button 的属性

从上向下,我们会发现这些属性分成了 Button、BaseButton、Control、CanvasItem、Node 这几组,很明显这就是 Button 节点在节点列表中的路径倒序。

结合本节标题,你应该也猜到了,Button 类正是继承自这些父类节点而来,所以我们可以在 Button 节点上看到 Control、Node 等父类的属性。同理,其他节点也相同。

脚本的继承

思考我们曾经写过的代码:position.x += 10,这里的 position 属性来自哪里呢?没错,就是继承自父类的。

每个脚本的开头,Godot 都会给我们生成一行继承语句,继承的父类通常是脚本所绑定到的节点类型。

根据所学,继承可以给原有的类增加功能,所以当我们的脚本继承自某个节点类时,我们实际上就是在一种节点的基础上创造了一种新的节点,并添加了我们的功能,例如玩家移动等效果。

[!tip]

我们的脚本并不一定需要继承自这个节点本身的类型,也可以是它的父类,例如我们只是希望调整按钮的位置,那么我们可以继承 Control 类,这样这个调整位置的脚本就可以用在所有 Control 的子类类型的节点上。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文