PluginManager

.Plugins. PluginManager

插件管理器负责为移相器安装和添加插件. 它是一个全局系统,因此属于游戏实例,而不是特定的场景. 它与插件一起工作.核心内部插件自动注册 但是插件管理器负责将它们注入场景. 插件有两种类型: 1. 一个全球插件 2. 一个场景插件 一个全局插件是一个插件管理器中的插件,而不是一个场景.你可以得到 通过调用 `PluginManager.get` 并提供一个密钥来访问它.任何需要插件的场景 通过这种方式,所有人都可以访问同一个插件实例,允许你跨平台使用一个插件 多个场景. 场景插件是一个专用于在场景中运行的插件.这些不同于全局插件 因为它们的实例不在插件管理器中,而是在场景系统类中. 每个创建的场景都有自己独特的场景插件实例.核心场景示例 插件包括输入插件,补间插件和物理插件. 您可以通过三种不同的方式向Phaser添加插件: 1. 预加载它 2. 包括在你的源代码中,并通过游戏配置安装它 3. 将它包含在源代码中,并将其安装在场景中 有关所有这些方法的示例,请参见移相器3示例报告文件夹. 关于创建自己插件的信息,请参见相位器3插件模板.

Constructor

new PluginManager(game)

Since:
  • 3.0.0
Parameters:
Name Type Description
game Phaser.Game 拥有此插件管理器的游戏实例.

Members

game :Phaser.Game

Since:
  • 3.0.0
拥有此插件管理器的游戏实例.
Type:

plugins :Array.<Phaser.Types.Plugins.GlobalPlugin>

Since:
  • 3.8.0
此插件管理器当前运行和管理的全局插件. 插件必须至少启动一次才能出现在列表中.
Type:

scenePlugins :Array.<string>

Since:
  • 3.8.0
应该安装到场景和核心插件的插件键列表.
Type:
  • Array.<string>

Methods

(protected) addToScene(sys, globalPlugins, scenePlugins)

Since:
  • 3.8.0
由场景系统类调用.告诉插件管理器安装所有的场景插件. 首先,它将安装全局引用,即.从游戏系统到场景系统(和场景,如果映射的话)的参考. 然后它将安装核心场景插件,接着是在插件管理器中注册的场景插件. 最后,它会将所有具有场景映射属性的全局插件的引用安装到场景本身中.
Parameters:
Name Type Description
sys Phaser.Scenes.Systems 场景系统类将所有插件安装到.
globalPlugins array 要安装的全局插件的数组.
scenePlugins array 要安装的一系列场景插件.

(protected) boot()

Since:
  • 3.0.0
游戏启动后运行,并安装游戏配置中配置的所有插件.

destroy()

Since:
  • 3.8.0
销毁此插件管理器和所有相关插件. 它将迭代所有找到的插件,并调用它们的 `destroy` 方法. 插件缓存将删除所有自定义插件.

get(key, autoStartopt) → (nullable) {Phaser.Plugins.BasePlugin|function}

Since:
  • 3.8.0
根据给定的键从插件管理器获取一个全局插件并返回它. 如果它找不到基于该关键字的活动插件,但是插件缓存中有一个具有相同关键字的插件, 然后它将创建一个缓存插件的新实例并返回.
Parameters:
Name Type Attributes Default Description
key string 要获取的插件的密钥.
autoStart boolean <optional>
true 如果在缓存中找到插件,则自动启动该插件的新实例,但不主动运行.
Returns:
该插件,或 `null` 如果没有找到匹配的关键字插件.
Type
Phaser.Plugins.BasePlugin | function

getClass(key) → {Phaser.Plugins.BasePlugin}

Since:
  • 3.8.0
从缓存中返回插件类. 由插件管理器内部使用.
Parameters:
Name Type Description
key string 要获取的插件的密钥.
Returns:
插件对象
Type
Phaser.Plugins.BasePlugin

(protected) getDefaultScenePlugins() → {Array.<string>}

Since:
  • 3.8.0
由场景系统类调用.返回要安装的插件列表.
Returns:
要安装的所有场景插件的列表键.
Type
Array.<string>

(protected) getEntry(key) → {Phaser.Types.Plugins.GlobalPlugin}

Since:
  • 3.8.0
基于给定的键获取全局插件.
Parameters:
Name Type Description
key string 唯一的插件密钥.
Returns:
插件条目.
Type
Phaser.Types.Plugins.GlobalPlugin

(protected) getIndex(key) → {number}

Since:
  • 3.8.0
基于给定的键获取全局插件的索引.
Parameters:
Name Type Description
key string 唯一的插件密钥.
Returns:
插件数组中插件的索引.
Type
number

install(key, plugin, startopt, mappingopt, dataopt) → (nullable) {Phaser.Plugins.BasePlugin}

Since:
  • 3.8.0
在插件管理器中安装一个新的全局插件,并可选地启动它运行. 全局插件属于插件管理器,而不是特定的场景,并且可以被访问 并被游戏中的所有场景使用. 属性是你用来从插件管理器访问这个插件的. ```javascript this.plugins.install('powerupsPlugin', pluginCode); // and from within the scene: this.plugins.get('powerupsPlugin'); ``` 如果您使用 游戏配置对象,或者通过加载器预加载它们. 同一个插件可以多次安装到插件管理器中 实例的唯一键.
Parameters:
Name Type Attributes Default Description
key string 插件管理器中赋予该插件的唯一句柄.
plugin function 插件代码.这应该是非实例化版本.
start boolean <optional>
false 自动启动插件运行?如果您提供了映射值,则该值始终为 `true` .
mapping string <optional>
如果这个插件被注入相位器.场景类,这是要使用的属性键.
data any <optional>
传递给插件的 `init` 方法的值.
Returns:
已启动的插件,如果 `start` 为假,则为 `null` ,或者游戏尚未启动.
Type
Phaser.Plugins.BasePlugin

installScenePlugin(key, plugin, mappingopt, addToSceneopt, fromLoaderopt)

Since:
  • 3.8.0
在插件管理器中安装一个新的场景插件,并可选择添加它 给定的场景.以这种方式添加到管理器的场景插件 将使用给定的密钥和映射自动安装到所有新场景中. `key` 属性是插件注入场景的内容.系统. `mapping` 属性是可选的,如果指定的话,插件将被安装到其中 场景为.例如: ```javascript this.plugins.installScenePlugin('powerupsPlugin', pluginCode, 'powerups'); // and from within the scene: this.sys.powerupsPlugin; // key value this.powerups; // mapping value ``` 如果您使用 游戏配置对象,或者通过加载器预加载它们.
Parameters:
Name Type Attributes Default Description
key string 将用于将此插件添加到场景系统的属性键.
plugin function 插件代码.这应该是非实例化版本.
mapping string <optional>
如果这个插件被注入相位器.场景类,这是要使用的属性键.
addToScene Phaser.Scene <optional>
可选地自动添加这个插件到给定的场景.
fromLoader boolean <optional>
false 这是由加载程序调用的吗?

isActive(key) → {boolean}

Since:
  • 3.8.0
根据给定的全局插件的键,检查该插件是否处于活动状态.
Parameters:
Name Type Description
key string 唯一的插件密钥.
Returns:
如果插件处于活动状态,则为 `true` ,否则为 `false` .
Type
boolean

registerFileType(key, callback, addToSceneopt)

Since:
  • 3.8.0
向全局文件类型管理器注册新的文件类型,使其对所有加载程序可用 此后创建的插件. 这通常是从插件代码中调用的,是创建插件的一个有用的捷径 新的加载程序文件类型. 关键是将被注入加载器插件并用于加载的属性 文件.例如: ```javascript this.plugins.registerFileType('wad', doomWadLoaderCallback); // later in your preload code: this.load.wad(); ``` 回调是当加载程序试图加载一个与给定键匹配的文件时调用的. 重要的是要理解回调是在 LoaderPlugin的上下文.在这种情况下,有几种可用的属性/方法 要使用: this.addFile - 向加载队列添加新文件的方法. this.scene - 拥有加载器插件实例的场景. 有关更多详细信息,请参见LoaderPlugin类.列出的任何公共财产或方法均可从以下网站获得 你在 `this` 下的回电.
Parameters:
Name Type Attributes Description
key string 给定回调将创建的游戏对象的键,即. `image` , `sprite` .
callback function 调用游戏对象工厂时要调用的回调.
addToScene Phaser.Scene <optional>
可以选择将此文件类型添加到给定场景拥有的加载器插件中.

registerGameObject(key, factoryCallbackopt, creatorCallbackopt)

Since:
  • 3.8.0
向全局游戏对象工厂和/或创建者注册新类型的游戏对象. 这通常是从插件代码中调用的,是创建插件的一个有用的捷径 新的游戏对象. 关键是将被注入工厂并用于创建 游戏对象.例如: ```javascript this.plugins.registerGameObject('clown', clownFactoryCallback, clownCreatorCallback); // later in your game code: this.add.clown(); this.make.clown(); ``` 回调是当工厂试图创建一个游戏对象时调用的 匹配给定的密钥.理解回调是在 游戏对象工厂的上下文.在这种情况下,有几个属性可用 要使用: this.scene - 对拥有游戏对象工厂的场景的引用. this.displayList - 对场景拥有的显示列表的引用. this.updateList - 对场景拥有的更新列表的引用. 详见游戏对象工厂和游戏对象创建者类. 任何列出的公共属性或方法都可以从你的回调函数中获得.
Parameters:
Name Type Attributes Description
key string 给定回调将创建的游戏对象的键,即. `image` , `sprite` .
factoryCallback function <optional>
调用游戏对象工厂时要调用的回调.
creatorCallback function <optional>
调用游戏对象创建器时要调用的回调.

removeGameObject(key, removeFromFactoryopt, removeFromCreatoropt)

Since:
  • 3.19.0
从全局游戏对象工厂和/或创建者中删除以前注册的游戏对象. 这通常是从你的插件销毁代码中调用的,用来在你的插件被移除后帮助清理.
Parameters:
Name Type Attributes Default Description
key string 要从工厂中移除的游戏对象的密钥.
removeFromFactory boolean <optional>
true 游戏对象应该从游戏对象工厂中移除吗?
removeFromCreator boolean <optional>
true 游戏对象应该从游戏对象创建者中移除吗?

removeGlobalPlugin(key)

Since:
  • 3.8.0
从插件管理器和插件缓存中删除一个全局插件. 这是由你来删除所有引用这个插件,你可能持有你的游戏代码.
Parameters:
Name Type Description
key string 要移除的插件的密钥.

removeScenePlugin(key)

Since:
  • 3.8.0
从插件管理器和插件缓存中删除一个场景插件. 这不会将插件从已经使用它的任何活动场景中删除. 这是由你来删除所有引用这个插件,你可能持有你的游戏代码.
Parameters:
Name Type Description
key string 要移除的插件的密钥.

start(key, runAsopt) → (nullable) {Phaser.Plugins.BasePlugin}

Since:
  • 3.8.0
启动一个全局插件运行. 如果插件先前是活动的,那么调用 `start` 会将其重置为活动状态,然后 调用其 `start` 方法. 如果插件在插件管理器中创建新实例之前从未运行过, 它的活动状态集,然后依次调用它的 `init` 和 `start` 方法. 如果插件已经在给定的键下运行,那么什么也不会发生.
Parameters:
Name Type Attributes Description
key string 要启动的插件的密钥.
runAs string <optional>
用新的密钥运行插件.这允许你多次运行一个插件.
Returns:
已启动的插件,如果给定无效密钥或插件已停止,则为 `null` .
Type
Phaser.Plugins.BasePlugin

stop(key) → {this}

Since:
  • 3.8.0
停止全局插件运行. 如果插件是活动的,那么它的活动状态将被设置为假,插件 `stop` 方法 会被召唤. 如果插件没有运行,什么也不会发生.
Parameters:
Name Type Description
key string 要停止的插件的键.
Returns:
插件管理器.
Type
this