Unity 5.6.1+ (including latest releases of Unity 2021)
Cross-platform: All platforms supported - Windows, Mac, iOS, Android, Universal Windows Platform, Web, Console, and more
Pure Pool is a professional and extensive object pooling solution, designed to improve the performance of your game. Simply replace Instantiate and Destroy calls with Acquire and Release, and enjoy a smoother gameplay experience. It offers object pooling for every device: Desktop, Laptop, Tablet, Mobile, Console - it fully supports all Unity platforms.
Integration libraries are included for UNet and Photon Unity Networking to help you utilise object pooling in your networked game, as well as a library with PlayMaker actions.
What’s more, Pure Pool is the only fully-serialisable object pool for Unity. Pools, all of their settings, and all of their statistics, are all serialisable. Make the most of Unity’s ability to hot reload code (also called live recompilation) for rapid prototyping and iterative development, without losing your pools in the process.
Designed for performance all the way through, even EventArgs objects used in the raising of C# events are internally pooled by Pure Pool. Garbage generation is kept to a minimum or avoided entirely where possible, reducing the need for the garbage collector to run, and allowing you and your players to enjoy a stutter-free and smooth game.
Features:
• Serialisable High-Performance Object Pooling
• Custom Inspectors - pools and managers have their own inspectors to maximise usability, supporting drag-and-drop for quick setup
• Pool Organisation - give names to pool containers in the hierarchy and nest them to keep your pools tidy, and easily findable - or search from the custom inspector with basic regex
• Runtime Statistics - get runtime access to pooled object counts, instantiation and destruction counts, elapsed times, and more, for tweaking performance to the max - or view them in the inspector
• Pool Definitions - your pool’s settings are immortalised into a pool definition when initialised, so when you make changes at runtime in the editor, you can easily compare your changes to how the pool was on start-up
• Easily Disabled - a toggle button in the inspector, also available through code, lets you test your game without pooling and compare performance, and helps pinpoint bugs
• Simple but powerful API - create, modify, and organise pools and pool managers at runtime, and monitor statistics through the in-depth API
• Serialisable - maintain settings and pooled objects after an assembly reload caused by live recompilation, allowing for quick iterative development without long downtimes
• GameObjects and Custom Classes - pool any GameObject, or your own custom C# classes
• Supports All Platforms - including AOT platforms
• Integration libraries:
• PlayMaker Support
• Unity 5 Networking (UNet) Support
• Mirror Networking (UNet replacement) Support
• Photon Unity Networking (PUN and PUN 2) Support~
• Photon Bolt Support
• Full C# Source Code - Visual Studio 2019 solution included
• XML documentation - .xml documentation files included for Intellisense in Visual Studio
• API Reference and Documentation
Website
Documentation
API Reference
Release Notes
Version 1.8 (2020-07-09)
- Added an integration script for Photon Bolt.
- Added an integration script for Mirror Networking, a replacement for UNet.
- Improvements to the included PlayMaker actions:
- The “Acquire Game Object From Manager” action no longer needs the
Prefab
to be stored in a variable, and thePrefab
andParent
values default to “Use Owner”. - The “Release Game Object To Manager” action no longer needs the Instance to be stored in a variable, and defaults to “Use Owner” - useful for FSMs that are on the prefab (and releasing the pooled copy).
- Added a new action “Release Game Objects To Manager”, that releases an array of GameObjects to their appropriate pools.
Version 1.7 (2020-06-14)
- Added two new PlayMaker actions: AcquireGameObjectFromManager and ReleaseGameObjectToManager.
- Added
Add
andRemove
methods and aComponentsToReset
property to PoolableMonoBehaviour, to allow programmatic modifications. - Bug fixes for PUN integration scripts, and additional error logging.
Version 1.6 (2020-06-07)
- Simplified the out-of-the-box usage of Pure Pool. The “Debug (Editor)” configuration has been removed, and both Debug and Release binaries can be used to make builds. The default binaries used are Debug.
- Improved the PUN integration scripts, including bug fixes for PUN2. The integration scripts are now serialisable, ensuring PUN pooling survives an assembly reload.
Version 1.5
- Fixed errors relating to the deprecation of Unity Networking (UNet).
v1.4 (2019-08-27)
Version 1.4, first offered to Asset Store users on August 27, 2019.
- Added integration script for PUN 2.
- Bug fix for EventArgsPool error on iOS (and other AOT platforms).
v1.2 (2018-01-31)
Version 1.2, first offered to Asset Store users on January 31, 2018.
- Bug fix for PUN spawning not respecting position and rotation.
- Bug fix for DontDestroyOnLoad causing error messages.
v1.1 (2017-07-03)
Version 1.1, first offered to Asset Store users on July 3, 2017.
- Added an overload of the Release method that accepts a float delay as a parameter, to mirror the overload of Object.Destroy that takes a delay.
- Fixed the location of the PrefabPool.cs PUN integration script, which should be outside of the Plugins folder by default.
v1.0 (2017-06-15)
Version 1.0, first offered to Asset Store users on June 15, 2017.
- Initial release of Pure Pool.