Skip to content

Commit 75968a1

Browse files
committed
PluginManager.removeGameObject is a new method that allows you to de-register custom Game Object types from the global Game Object Factory and/or Creator. Useful for when custom plugins are destroyed and need to clean-up after themselves.
1 parent 08325f2 commit 75968a1

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

src/plugins/PluginManager.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,35 @@ var PluginManager = new Class({
784784
return this;
785785
},
786786

787+
/**
788+
* Removes a previously registered Game Object from the global Game Object Factory and / or Creator.
789+
* This is usually called from within your Plugin destruction code to help clean-up after your plugin has been removed.
790+
*
791+
* @method Phaser.Plugins.PluginManager#removeGameObject
792+
* @since 3.19.0
793+
*
794+
* @param {string} key - The key of the Game Object to be removed from the factories.
795+
* @param {boolean} [removeFromFactory=true] - Should the Game Object be removed from the Game Object Factory?
796+
* @param {boolean} [removeFromCreator=true] - Should the Game Object be removed from the Game Object Creator?
797+
*/
798+
removeGameObject: function (key, removeFromFactory, removeFromCreator)
799+
{
800+
if (removeFromFactory === undefined) { removeFromFactory = true; }
801+
if (removeFromCreator === undefined) { removeFromCreator = true; }
802+
803+
if (removeFromFactory)
804+
{
805+
GameObjectFactory.remove(key);
806+
}
807+
808+
if (removeFromCreator)
809+
{
810+
GameObjectCreator.remove(key);
811+
}
812+
813+
return this;
814+
},
815+
787816
/**
788817
* Registers a new file type with the global File Types Manager, making it available to all Loader
789818
* Plugins created after this.

0 commit comments

Comments
 (0)