com.amanotes.widget2d
v1.0.1
Published
Responsive UI system for Unity
Downloads
180
Maintainers
Readme
Widget2D
Responsive UI system for Unity with automatic screen adaptation.
Features
- ✅ Automatic component resizing based on screen configuration
- ✅
ISizeListenerinterface for custom resize behavior - ✅ Support for SpriteRenderer, MeshRenderer, BoxCollider, etc.
- ✅ Screen2D configuration assets
- ✅ No dependencies on other packages
Installation
Add to your manifest.json:
{
"dependencies": {
"com.amanotes.widget2d": "1.0.0"
}
}Quick Start
using Amanotes.Widget2D;
using UnityEngine;
public class ResponsiveTile : MonoBehaviour
{
void Start()
{
var widget = GetComponent<Widget2D>();
widget.size = new Vector2(100, 100);
// Widget automatically resizes attached components
// (SpriteRenderer, MeshRenderer, BoxCollider, etc.)
}
}Usage
Basic Widget Setup
public class TileVisual : MonoBehaviour
{
private Widget2D widget;
void Awake()
{
widget = GetComponent<Widget2D>();
}
void Start()
{
// Set size - auto-resizes components
widget.size = new Vector2(50, 50);
}
}Custom Resize Behavior
public class CustomResize : MonoBehaviour, ISizeListener
{
public void OnSizeChanged(Vector2 size)
{
// Custom resize logic
transform.localScale = new Vector3(size.x, size.y, 1f);
}
}Screen Configuration
// Create Screen2D asset
var screen = ScriptableObject.CreateInstance<Screen2D>();
screen.width = 1080f;
screen.height = 1920f;
screen.referenceResolution = new Vector2(1080, 1920);
// Assign to widget
widget.screen = screen;API Reference
Widget2D Component
public class Widget2D : MonoBehaviour
{
public Vector2 size; // Widget size
public Screen2D screen; // Screen configuration
public void UpdateSize(); // Manually trigger resize
}ISizeListener Interface
public interface ISizeListener
{
void OnSizeChanged(Vector2 size);
}Screen2D Asset
public class Screen2D : ScriptableObject
{
public float width;
public float height;
public Vector2 referenceResolution;
}Supported Components
Widget2D automatically resizes:
- SpriteRenderer (sprite bounds)
- MeshRenderer (mesh bounds)
- BoxCollider (collider size)
- BoxCollider2D (collider size)
- Components implementing
ISizeListener
License
Copyright © Amanotes
