upm add package dev.upm-packages.cafu.numberrendererNote: upm command is provided by this repository.
You can also edit Packages/manifest.json directly.
Setup GameObjects and Components to render images.
Setup Installer.
- Add
NumberRendererInstallerto some Context.- This installer exposes
INumberRendererinterface. - If you want to use
asyncwithIAsyncNumberRendererinterface, addAsyncNumberRendererInstallerinstead ofNumberRendererInstaller.
- This installer exposes
- Choose
Renderer Typeto use to render all digits.SpriteRenderer: UsingUnityEngine.SpriteRenderer.UIImage: UsingUnityEngine.UI.Image.UIRawImage: UsingUnityEngine.UI.RawImage.
- Put renderers into
Renderersfield.- Renderer components type must match to
Renderer Type. - Please arrange the displayed numbers from left to right.
- Renderer components type must match to
- Put images into
Spritesfield orTexturesfield.- You must put
Spritesif you chooseSpriteRendererorUIImageatRenderer Type. - You must put
Texturesif you chooseUITextureatRenderer Type.
- You must put
- Choose
Empty Digit Typeto specify how to handle empty digits.None: Nothing to do.DestroyGameObject: Destroy GameObject related to empty image components.DestroyImmediateGameObject: Destroy GameObject related to empty image components immediately.DeactivateGameObject: InvokeGameObject.SetActive(false)on GameObject related to empty image components.DestroyComponent: Destroy empty image components.DestroyImmediateComponent: Destroy empty image components immediately.DisableComponent: SetfalsetoBehaviour.enabledof empty image components.Transparent: SetColor.cleartoMaterialorGraphic.colorof empty image components.ZeroFill: Render0image into empty image components.
- Check
Should Render Initial Valueif you want to render initial value. - Input initial value to
Initial Valuefield.
Invoke INumberRenderer.Render() to render images.
using CAFU.NumberRenderer;
public class Foo
{
public Foo(INumberRenderer numberRenderer)
{
NumberRenderer = numberRenderer;
}
private INumberRenderer NumberRenderer { get; }
public void Run()
{
NumberRenderer.Render(123);
}
}You can also invoke asynchronous with IAsyncNumberRenderer.RenderAsync() to use Addressable.AssetReferenceSprite or Addressable.AssetReferenceTexture instead of to use Sprite or Texture directly.
using CAFU.NumberRenderer;
using UniRx.Async;
public class Bar
{
public Bar(IAsyncNumberRenderer asyncNumberRenderer)
{
AsyncNumberRenderer = asyncNumberRenderer;
}
private IAsyncNumberRenderer AsyncNumberRenderer { get; }
public async UniTask RunAsync(CancellationToken cancellationToken = default)
{
await AsyncNumberRenderer.RenderAsync(123, cancellationToken);
}
}

{ "dependencies": { // (snip) "dev.upm-packages.cafu.numberrenderer": "[latest version]", // (snip) }, "scopedRegistries": [ { "name": "Unofficial Unity Package Manager Registry", "url": "https://upm-packages.dev", "scopes": [ "dev.upm-packages" ] } ] }