Implement object pooling with JObjectPool
JEngine.Util namespace.using JEngine.Util;website·Indexed 30 days ago
https://jengine.xgamedev.net/Documentation for JEngine, including versions v0.7 through v1.1. Covers initial setup, HybridCLR installation, package management, and core components such as JAction for asynchronous execution, MessageBox, JObjectPool, and the Runtime Panel. Includes guides on hot update resource building, packaging, and deployment via the Editor Panel, as well as the Claude Code Plugin in v1.1.
JEngine.Util namespace.using JEngine.Util;JEngine supports two types of resource packages for hot updates:
main. In YooAsset, if no sub-package is specified, the main package is used by default.AddOn1, Raw). These are loaded on demand and can be updated independently of the main package.JEngine supports two types of resource packages for hot updates:
main. This is the default package used by YooAsset functions when no sub-package is specified.AddOn1, Raw). These are loaded on demand and can be updated independently.Hot update code has strict dependency restrictions: it cannot use code from the Unity project unless that code is a Plugin, Package, DLL, or defined via an Assembly Definition (asmdef). Code within the default Assembly-CSharp project is inaccessible to the hot update project.
To use main project code in a hot update project:
.asmdef file.HotUpdate/Code/HotUpdate.Code.asmdef.jengine.util package. It can be installed via the OpenUPM CLI or the Unity Package Manager.openupm add com.jasonxudeveloper.jengine.util# 1. Update Core Package (Delete Packages/com.jasonxudeveloper.jengine.core first)
openupm add com.jasonxudeveloper.jengine.core
# 2. Install the New UI Package (MessageBox has moved here)
openupm add com.jasonxudeveloper.jengine.ui
# 3. Optional: Update Util Package for JAction parallel execution support
openupm add com.jasonxudeveloper.jengine.utilJEngine/JEngine Panel.The jengine.ui package provides a shadcn-inspired monochrome UI component library for Unity's UIToolkit. It requires the following dependencies:
com.cysharp.unitask >= 2.5.10com.unity.textmeshpro >= 3.0.6openupm add com.jasonxudeveloper.jengine.uiasync/await with MessageBox.Show. Avoid using .GetAwaiter().GetResult() as it can block the main thread and cause lag.UniTask is properly configured in your project as the MessageBox system relies on it.// Recommended approach
public async void HandleUserChoice()
{
bool result = await MessageBox.Show("Confirm", "Continue operation?");
if (result) { /* Handle confirmation */ }
}JEngine.UI namespace) allows for showing confirmation dialogs that return a boolean result asynchronously. It supports custom titles, messages, and button labels.using JEngine.UI;
// Basic confirmation dialog
bool result = await MessageBox.Show("Confirm", "Do you want to delete this file?");
// Dialog with custom button text (Confirm, Cancel)
bool resultCustom = await MessageBox.Show("Save", "Save current changes?", "Save", "Discard");JEngine v1.0 supports securing game assets and code through the following methods: