Skip to content

cemuka/quill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quill

Quill is just a small wrapper based on pure UnityUI. You can create UI by using its c# api, programmatically.

Quill also comes with lua api support(experimental). That means you can run lua code from StreamingAssets and make ui in unity.

Documentation

Components

Label

var label = Quill.CreateLabel("hello world");
label.element.SetSize(100, 30);
label.element.SetPosition(100, 100);

Button

var button = Quill.CreateButton("hello button!");
button.onClick.AddListener(SomeMethod);
button.interactable = false;

button sample

Box

var panelParent = Quill.CreateEmpty();
panelParent.SetSize(300, 80);

var box = Quill.CreateBox(Color.red);
var label = Quill.CreateLabel("Score: ");
label.alignment = TextAnchor.MiddleCenter;
label.fontSize = 32;

panelParent.Add(box);
panelParent.Add(label);

label.element.StretchToParentContainer();
box.element.StretchToParentContainer();

panel sample

quill lua api

To enable lua feature, initialize and update the api like below. Quill will look into StreamingAssets/LUA directory for main.lua file.

private void Start()
{
    Quill.Init();
    QuillLua.Run(); 
}

private void Update()
{
    QuillLua.Update();
}

private void OnDestroy()
{
    QuillLua.Exit();
}

Here is the structure of the StreamingAssets/LUA/main.lua

function OnInit()

end

function OnUpdate(dt)

end

function OnExit()

end

Lua example

local timePassed = 0
local timeLabel = nil

function OnInit()

    local root = quill.empty()

    color = {}
    color.r = 0.4
    color.g = 0.8
    color.b = 0.3

    local box = quill.box()
    box:setColor(color.r, color.g, color.b)
    box:setSize(300, 100)
    root:addChild(box)

    timeLabel = quill.label("time")
    timeLabel:setSize(300, 100)
    
    root:addChild(timeLabel)
end

function OnUpdate(dt)
    timePassed = timePassed + dt
    timeLabel:setText("time: " .. string.format("%.2f", timePassed))

end

sample

This project is heavily WIP.

For more detail

Here is the first devlog: introduction to quill

references

Moonsharp

About

Minimal UI library for unity. It provides modding capabilities via lua api.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published