{"id":28036125,"url":"https://github.com/bluepixeldev/refpool","last_synced_at":"2025-10-04T15:52:38.443Z","repository":{"id":291225253,"uuid":"922224502","full_name":"BluePixelDev/refpool","owner":"BluePixelDev","description":"RefPool is a lightweight, ScriptableObject-driven pooling system for Unity 6.0 and above. It enables clean, efficient reuse of GameObjects across scenes without relying on global registries.","archived":false,"fork":false,"pushed_at":"2025-05-08T21:06:29.000Z","size":34,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-11T12:06:31.829Z","etag":null,"topics":["plugin","pool","scriptableobject","unity","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/BluePixelDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-01-25T16:42:38.000Z","updated_at":"2025-05-08T21:06:32.000Z","dependencies_parsed_at":"2025-05-03T08:28:14.089Z","dependency_job_id":"47dc0739-c9eb-4880-b1da-12b86cdd49f2","html_url":"https://github.com/BluePixelDev/refpool","commit_stats":null,"previous_names":["bluepixeldev/refpool"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BluePixelDev%2Frefpool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BluePixelDev%2Frefpool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BluePixelDev%2Frefpool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BluePixelDev%2Frefpool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BluePixelDev","download_url":"https://codeload.github.com/BluePixelDev/refpool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253561431,"owners_count":21927787,"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":["plugin","pool","scriptableobject","unity","unity3d-plugin"],"created_at":"2025-05-11T12:06:37.114Z","updated_at":"2025-10-04T15:52:38.438Z","avatar_url":"https://github.com/BluePixelDev.png","language":"C#","readme":"# RefPool\n\n[![GitHub Repo stars](https://img.shields.io/github/stars/BluePixelDev/refpool?style=flat-square)](https://github.com/BluePixelDev/refpool/stargazers)\n[![GitHub last commit](https://img.shields.io/github/last-commit/BluePixelDev/refpool?style=flat-square)](https://github.com/BluePixelDev/refpool/commits/main)\n[![GitHub issues](https://img.shields.io/github/issues/bluepixeldev/refpool?style=flat-square)](https://github.com/bluepixeldev/refpool/issues)\n[![Unity Version](https://img.shields.io/badge/unity-6.0%2B-green?style=flat-square)](https://unity.com/releases/editor)\n\n**RefPool** is a lightweight, high-performance pooling system for **Unity 6** and above, designed to efficiently manage GameObjects through ScriptableObjects.\n\n## Features\n\n- Efficient GameObject pooling\n- Works seamlessly with Unity 6 and above\n- Uses ScriptableObjects for easy configuration and management\n- Supports nested pooling through Groups for hierarchical pooling\n\n## Table of Contents\n\n- [RefPool](#refpool)\n  - [Features](#features)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n    - [1. Open Unity Package Manager](#1-open-unity-package-manager)\n    - [2. Add Package](#2-add-package)\n  - [Usage](#usage)\n    - [Creating Pools](#creating-pools)\n    - [Pools vs Groups](#pools-vs-groups)\n    - [Adding Components](#adding-components)\n    - [Example Usage](#example-usage)\n  - [Contributing](#contributing)\n    - [How to Contribute:](#how-to-contribute)\n  - [License](#license)\n\n## Installation\n\n### 1. Open Unity Package Manager\n\nIn Unity, go to the **Toolbar** -\u003e **Window** -\u003e **Package Management** -\u003e **Package Manager**\n\n### 2. Add Package\n\n1. In the Package Manager window, click the + button at the top left.\n2. Select **Install package from git URL...**\n3. Paste the following URL: `https://github.com/BluePixelDev/refpool.git`\n\n## Usage\n\n### Creating Pools\n\nTo create a **Referenced Pool** in your project:\n\n1. Go to the **Project** window and select a directory where you want to create the pool.\n2. Right-click in the directory and select: **Create** -\u003e **RefPool** -\u003e **Pool**\n3. Configure the pool using the Inspector. The Pool Asset is the primary endpoint for retrieving and releasing GameObjects.\n\n### Pools vs Groups\n\nPools are used to manage individual collections of GameObjects. Each pool holds and manages a specific type of object.\n\n**Groups** allow you to organize pools into hierarchical structures. You can nest multiple pools inside a group, enabling more granular control over different object types.\n\nFor example, you can create a pool for Debris and then use groups to separate Small Debris and Large Debris into separate pools.\n\n### Adding Components\n\n**RefPool** also includes components that can be added to **GameObjects** for pooling functionality.\n\n- RefPooler\n- RefGroupPooler\n\n- RefSpawner (Used to spawn pooled objects)\n- RefPlacer (Used alongside `RefSpawner` to place objects.)\n\n### Example Usage\n\n```cs\nusing BP.RefPool;\npublic class Example : MonoBehaviour\n{\n    public RefResource resource; // Base class for both PoolAsset and PoolGroupAsset\n\n    public void Start() {\n        // Optionally, prepare the pool before using it\n        // resource.Prepare();\n\n        // Retrieve a pooled item (RefItem is a MonoBehaviour)\n        RefItem pooledItem = resource.Get()\n\n        // Manipulate the pooled item (e.g., set position, etc.)\n        pooledItem.transform.position = Vector3.zero;\n\n        // Once done, release the item back to the pool for reuse\n        pooledItem.Release()\n    }\n}\n```\nIn this example:\n- ``RefResource`` is a base class used for both PoolAssets and PoolGroupAssets.\n- ``Get()`` retrieves a pooled item, which is a RefItem (a MonoBehaviour for managing the pooled objects).\n- ``Release()`` returns the object to the pool when no longer needed.\n\n## Contributing\n\nContributions are welcome! If you find a bug or have a feature request, feel free to create an issue or submit a pull request.\n\n### How to Contribute:\n\n1. Fork the repository.\n2. Create a feature branch (`git checkout -b feature-branch`).\n3. Commit your changes (`git commit -am 'Add new feature'`).\n4. Push to the branch (`git push origin feature-branch`).\n5. Create a new pull request.\n\nI’ll review your changes and merge them after approval.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](https://github.com/BluePixelDev/refpool/blob/master/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluepixeldev%2Frefpool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluepixeldev%2Frefpool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluepixeldev%2Frefpool/lists"}