插件是怎么回事?
插件就是Plugin,它仅仅只是一类“东西”的名字而已,讨论这类东西为什么叫“插件”没有多少意义。
简单的说就是,可以以插件的形式额外为ESS增加功能。
插件本质上也是一系列代码而已,只不过这些代码是以插件的形式进行加载的。
我们并没有直接把这些代码加到ESS的原生代码库中(Scripts),而是在外部通过一个叫做Plugins的文件夹进行加载——
所有的插件都必须放置在这个文件夹里才可能被正确加载——
在游戏运行时,程序会优先加载Scripts中的代码,然后加载Plugins中的代码。
所以,Scripts中的代码可能会被Plugins中的代码所覆盖,被覆盖的原代码就会失效。
当你发现修改Scripts中的代码不生效时,那么就是你当前修改的这部分代码已经在Plugins中被覆盖了,所以你需要在Plugins中找到相应的代码,然后再次进行修改。
在通常情况下,不管是Scripts中的代码,还是Plugins中的代码,都是从上往下进行加载的,所以我们可以通过手动修改文件名,来让程序先加载某一部分的代码。
但是如果你的插件有某些特殊“标记”的话,就会改变插件的加载顺序。
需要始终牢记,后面加载的代码可能会覆盖前面加载的代码。
实际上,加载外部插件是需要基于一个叫做插件管理器(Plugin Manager)的东西的,在之前的还没有插件管理器的ESS版本中,当某某某发布了新的插件之后,经常会说“把这段代码复制到Main的上方进行安装使用”,这实际上就是因为顺序的问题——
可以看到Main是999,而其他的原生代码文件夹只到了021,实际上就相当于Plugins文件夹的位置就是在这里——
因为我们现在有了插件管理器,所以可以直接加载外部Plugins中的代码,但是原本的手动加插件的方式现在也是依然有效的。