Loxodon Framework

license release


MVVM and Databinding for Unity3d(C# & XLua)

Developed by Clark

Requires Unity 2018.4 or higher.

LoxodonFramework is a lightweight MVVM(Model-View-ViewModel) framework built specifically to target Unity3D. Databinding and localization are supported.It has a very flexible extensibility.It makes your game development faster and easier.

For tutorials,examples and support,please see the project.You can also discuss the project in the Unity Forums.

The plugin is compatible with MacOSX,Windows,Linux,UWP,WebGL,IOS and Android,and provides all the source code of the project.

Tested in Unity 3D on the following platforms:


OpenUPM can automatically manage dependencies, it is recommended to use it to install the framework.

Requires nodejs’s npm and openupm-cli, if not installed please install them first.

# Install openupm-cli,please ignore if it is already installed.
npm install -g openupm-cli 

#Go to the root directory of your project
cd F:/workspace/New Unity Project

#Install loxodon-framework
openupm add com.vovgou.loxodon-framework

Install via Packages/manifest.json

Modify the Packages/manifest.json file in your project, add the third-party repository “package.openupm.com”’s configuration and add “com.vovgou.loxodon-framework” in the “dependencies” node.

Installing the framework in this way does not require nodejs and openm-cli.

  "dependencies": {
    "com.unity.modules.xr": "1.0.0",
    "com.vovgou.loxodon-framework": "2.0.0-preview"
  "scopedRegistries": [
      "name": "package.openupm.com",
      "url": "https://package.openupm.com",
      "scopes": [

Install via git URL

After Unity 2019.3.4f1 that support path query parameter of git package. You can add https://github.com/vovgou/loxodon-framework.git?path=Loxodon.Framework/Assets/LoxodonFramework to Package Manager

Install via *.unitypackage file

Download Loxodon.Framework2.x.x.unitypackage and import it into your project.

Import the samples

English manual

Key Features:


Quick Start

Create a view and view model of the progress bar.

public class ProgressBarViewModel : ViewModelBase
    private string tip;
    private bool enabled;
    private float value;
    public ProgressBarViewModel()

    public string Tip
        get { return this.tip; }
        set { this.Set<string>(ref this.tip, value, nameof(Tip)); }

    public bool Enabled
        get { return this.enabled; }
        set { this.Set<bool>(ref this.enabled, value, nameof(Enabled)); }

    public float Value
        get { return this.value; }
        set { this.Set<float>(ref this.value, value, nameof(Value)); }

public class ProgressBarView : UIView
    public GameObject progressBar;
    public Text progressTip;
    public Text progressText;
    public Slider progressSlider;

    protected override void Awake()
        var bindingSet = this.CreateBindingSet<ProgressBar, ProgressBarViewModel>();

        bindingSet.Bind(this.progressBar).For(v => v.activeSelf).To(vm => vm.Enabled).OneWay();
        bindingSet.Bind(this.progressTip).For(v => v.text).To(vm => vm.Tip).OneWay();
        bindingSet.Bind(this.progressText).For(v => v.text)
            .ToExpression(vm => string.Format("{0:0.00}%", vm.Value * 100)).OneWay();
        bindingSet.Bind(this.progressSlider).For(v => v.value).To(vm => vm.Value).OneWay();


IEnumerator Unzip(ProgressBarViewModel progressBar)
    progressBar.Tip = "Unziping";
    progressBar.Enabled = true;//Display the progress bar

    for(int i=0;i<30;i++)
        //TODO:Add unzip code here.

        progressBar.Value = (i/(float)30);            
        yield return null;

    progressBar.Enabled = false;//Hide the progress bar
    progressBar.Tip = "";        


Tutorials and Examples


Contact Us

Email: yangpc.china@gmail.com
Website: https://vovgou.github.io/loxodon-framework/
QQ Group: 622321589