饥荒mod教程:四大基本类
操作方法
- 01
Prefabs, Components, Stategraphs, And Brains 这四个类是饥荒最常用到的,来讲一讲有什么不同吧。(翻译自国外教程 Diff' Prefabs, Components, Stategraphs, And Brains) 我知道可能在一个实体(entity)中这四个部分会有一些混淆,所以这里有一个简短的描述何时使用每一个。 Prefabs and Components:( Prefabs 翻译为预制的,在这里可以理解为生物, Components:组件,成分) 这两个是世界上任何实体的肉和土豆(主要的组成部分),你将花最多的时间了解这两个。有一个简单的思维方式的区别, Prefabs有一件事物是什么。(Prefabs are what a thing IS) 组件是什么一个东西。(Components are what a thing does.) 让我们看看firepit(火)为例。它是什么?firepit !所以它成为“firepit”的组合式。 它是做什么的?它得到建立,它燃烧,需要燃料,可以看着,产生光……所以我们不要做一个“firepit”组件,而不是“可燃”组件,和“推动”组件,等等。 组件是所有的工作发生的地方,所有的逻辑和数据存储。预设(Prefabs)是一个指令,说,“这些组件来使用,你如何配置它们。” 大多数prefabs有一个主要功能,主要做的就是这些:配置所有组件, 和许多prefabs合起来就是整个故事,比如“胡萝卜”组合式。 把它变得有趣一点是,一些组件需要被告知如何做点什么。例如,战斗组件需要知道,“我如何选择一个新的目标,如果我失去我的目标?”。如果我们看一下“青蛙”的文件,我们可以看到,它增加了战斗的组件,然后调用inst.components.combat:SetRetargetFunction(3,retargetfn)。 我们看,retargetfn在预制文件中定义,它是一条指令为战斗组件如何选择一个新的目标。因此基本上,这仍然是一个组件的配置。所有prefabs都是这样! 一些定义多个prefabs预制文件。通常这些事情与类似的组件,但不同的配置。”staff .lua”包含所有的法杖。每一个共享一个共同的基础,但有不同的专业配置为每个颜色的宝石。所以当你在做你自己的插件,问自己,这是mod新事物或新一个东西可以做的事情。如果你想让一把剑,发射闪电,你有一把剑(prefabs)可以拍摄照明(components)。 最酷的地方接近这种方式的问题是,你可以把你的闪电射击组件在一个不同的武器,或一顶帽子,或者一只蜘蛛女王,或.... ! Stategraphs和Brains:( Stategraphs:翻译为状态图表,可以理解为行为事件,Brains:大脑) 这两个比较有趣,但大多数prefabs在游戏中不使用它们!这是因为,正如前面提到的,组件是真的在努力工作就完成了。但是值得了解,以防他们满足您的需求。 Stategraphs: Stategraphs主要用于控制动画和时机。我们可以看看“Sgeyeplant,眼睛植物”,眼睛植物,作为一个例子。 它的第一个状态是“产生”,在正确的创建眼植物时。注意,其“onenter”功能发挥一些动画和声音。它还监听一个“animover”事件被触发了当前动画完成比赛时,移动它到“空闲”状态。所有的空闲状态是空闲动画。通常这种行为,“这事,当它结束的时候做那件事” 写的代码是一种苦差事,但stategraph使它可以简单的处理,我们只是告诉它去“产生”状态,当它结束的时候它会自动空转。 另一个有趣的例子是SGtentacle“攻击”状态。我们希望触手声音和造成伤害在“whipping”动画的一部分,它发生在特定的帧。所以这个国家设立一个时间表将在第2,7,15帧做某些事情,等等。再一次,我们可以设置在stategraph这一切,然后战斗组件只是说“去你的攻击状态!”. 大脑: 大脑是最不经常使用,这四种元素之一,因为它们大多数mod和一般实体不需要这种程度的复杂性。 其目的是AI(人工智能)和决策,只有复杂的生物需要这个。我不打算在这里详细描述它们,但简而言之:大脑使用系统称为“行为树”做出决策。 时不时去树中的第一项,检查,“我能这样做吗?”,如果没有,就去下一个,下一个,和它的孩子,和他们的孩子,直到找到它可以做的事情。 然后”做”它!这意味着更高的优先级列表中有更多的,猪喜欢吃,喜欢战斗,但是即使他们战斗时着火会恐慌。 一般树中的每个行为归结为发送指示到组件:组件最终仍然做真正的“工作”。 所以ChaseAndAttack行为,例如,将指令发送给运动(movement)和战斗(attacking)的组件,这些组件和处理细节。所以如上所述,大多数插件不会需要大脑或stategraphs联系。但如果你需要修改,现在希望你了解他们的目的是什么。 总而言之,我认为理解 预设/组件 的区别在饥荒mod里是至关重要的。!