{"id":19635261,"url":"https://github.com/supremepanda/objectpoolmanager","last_synced_at":"2025-04-28T13:44:19.969Z","repository":{"id":227366995,"uuid":"771188485","full_name":"supremepanda/ObjectPoolManager","owner":"supremepanda","description":"Easy to use Object Pool Manager","archived":false,"fork":false,"pushed_at":"2024-03-13T10:53:20.000Z","size":10319,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T10:11:21.222Z","etag":null,"topics":["csharp","memory-management","object-pool","object-pooling","objectpool-pattern","optimization","performance","unity","unity-package","unity-scripts","unity2d","unity3d","unity3d-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supremepanda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-12T21:07:34.000Z","updated_at":"2024-04-24T13:15:38.000Z","dependencies_parsed_at":"2025-01-09T16:21:03.949Z","dependency_job_id":"2c3be53c-189d-4944-8ebe-65f44588e141","html_url":"https://github.com/supremepanda/ObjectPoolManager","commit_stats":null,"previous_names":["supremepanda/objectpoolmanager"],"tags_count":0,"template":false,"template_full_name":"supremepanda/unity-package-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supremepanda%2FObjectPoolManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supremepanda%2FObjectPoolManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supremepanda%2FObjectPoolManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supremepanda%2FObjectPoolManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supremepanda","download_url":"https://codeload.github.com/supremepanda/ObjectPoolManager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251321553,"owners_count":21570758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","memory-management","object-pool","object-pooling","objectpool-pattern","optimization","performance","unity","unity-package","unity-scripts","unity2d","unity3d","unity3d-plugin"],"created_at":"2024-11-11T12:24:29.116Z","updated_at":"2025-04-28T13:44:19.944Z","avatar_url":"https://github.com/supremepanda.png","language":"C#","readme":"# Object Pool Manager\n\n[![Unity 2019.1+](https://img.shields.io/badge/unity-2019.1%2B-blue.svg)](https://unity3d.com/get-unity/download)\n[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/supremepanda/ObjectPoolManager/blob/master/LICENSE)\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/furkanbaldir)\n\nObject pooling is a software design pattern used in computer programming to manage the reuse of objects. Instead of creating and destroying objects frequently, which can be resource-intensive and impact performance, object pooling maintains a pool of pre-initialized objects. When an object is needed, it is retrieved from the pool. After its use, instead of being destroyed, the object is returned to the pool for potential reuse later.\n\n### Why should you use this Object Pool Manager?\n\nBecause it is easy to use manager. It allows you to spawn objects using the same methods as instantiate without having to change your habits.\n\n### Installation\n\nFirst of all, this asset dependent with Zenject. If you dont want to use Zenject, you can convert it with editing some codes related with Zenject.\n\nhttps://github.com/modesttree/Zenject\n\nor if you want Asset store\n\nhttps://assetstore.unity.com/packages/tools/utilities/extenject-dependency-injection-ioc-157735\n\nthen;\n\n1. You can add git url via **Package Manager =\u003e Add package from git url**\n```\nhttps://github.com/supremepanda/ObjectPoolManager.git#upm\n```\n\n2. You can also install via git url by adding this entry in your **manifest.json**\n```\n\"com.supremepanda.object_pool_manager\": \"https://github.com/supremepanda/ObjectPoolManager.git#upm\"\n```\n\n### How to use?\n\n1. You should add **ObjectPoolManagerInstaller** to your prefered context (Scene or Project Context)\n2. You can inject ObjectPoolManager like this; ```[Inject] private ObjectPoolManager _objectPoolManager;```\n3. You should inherit from **PoolableComponent** class for your pool objects.\n4. Then you can spawn or despawn objects using this manager.\n```var target = _objectPoolManager.Spawn(_prefab, Vector3.zero, Quaternion.identity);```\n```_objectPoolManager.Despawn(target);```\n\nThere are other method overrides on ObjectPoolManager abstract class if you want to check.\n\n### Important notes\n\n- If you install ObjectPoolManager with Project Context, probably you need to reset manager caches. There is a boolean checkbox on **ObjectPoolManagerInstaller** as **ResetOnSceneChange**, you can check if you want to reset when scene changed. Or you can call **ResetPoolManager** method manually.\n- If you are gettings exception related with Zenject, you can check your ZenAutoInjecter component on your PoolableComponent Gameobject. It should be set to **SceneContext**\n","funding_links":["https://www.buymeacoffee.com/furkanbaldir"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupremepanda%2Fobjectpoolmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupremepanda%2Fobjectpoolmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupremepanda%2Fobjectpoolmanager/lists"}