An open API service indexing awesome lists of open source software.

https://github.com/paulnonatomic/uielementtable

A Unity UIElement based Table
https://github.com/paulnonatomic/uielementtable

Last synced: about 1 year ago
JSON representation

A Unity UIElement based Table

Awesome Lists containing this project

README

          

# UIElement Table

## Overview
UIElement Table is a Unity package that provides a way to draw tables with UIElements.

## Installation
To install UIElement Table into your Unity project, add the package from the git URL: https://github.com/PaulNonatomic/UIElementTable.git using the Unity package manager.

## Usage
```csharp
// Create a table
_table = new DataBindingUITable();
rootVisualElement.Add(_table);

// Style the table
var styleSheet = Resources.Load("CustomTable");
_table.SetCustomStyleSheet(styleSheet);

// Show row numbers (optional)
_table.ShowRowNumbers(new ColumnDefinition("#", 50f));

// Define columns using AddColumn with a cell creation func
_table.AddColumn(
new ColumnDefinition("Name", 150f),
person => new Label(person.Name)
);
_table.AddColumn(
new ColumnDefinition("Age", 75f),
person => new Label(person.Age.ToString())
);
_table.AddColumn(
new ColumnDefinition("Country"),
person => new Label(person.Country)
);

// Listen for cell clicks
_table.RegisterCallback(evt =>
{
var cell = _table.GetCell(evt.ColumnIndex, evt.RowIndex);
var label = cell.Q();
Debug.Log($"Clicked on cell: Column={evt.ColumnIndex}, Row={evt.RowIndex}, Value={label.text}");
});

// Populate the table with data
var people = new List
{
new Person("Alice", 30, "USA"),
new Person("Bob", 25, "Canada"),
new Person("Charlie", 35, "UK")
};
_table.SetData(people);

public class Person
{
public string Name;
public int Age;
public string Country;

public Person(string name, int age, string country)
{
Name = name;
Age = age;
Country = country;
}
}
```
![Unity_eSa6UxeX1c](https://github.com/user-attachments/assets/e67a80fd-70e5-4695-b9c6-639a37afaf60)