All Projects → vovgou → Loxodon Framework

vovgou / Loxodon Framework

Licence: mit
An MVVM & Databinding framework that can use C# and Lua to develop games

Projects that are alternatives of or similar to Loxodon Framework

Nice Lua
基于xlua的MVVM框架,支持Addressables, 统一渲染管线等Unity新特性
Stars: ✭ 207 (-74.19%)
Mutual labels:  game, unity3d, mvvm
Bdframework.core
[中]Simple! Easy! Powerful Unity3d game workflow! Unity3d framework:c# hotfix(ILRuntime)、asset manager、ui workflow、network debug... and so on
Stars: ✭ 1,196 (+49.13%)
Mutual labels:  framework, game, unity3d
Jengine
JEngine是针对Unity开发者设计的开箱即用的框架,封装了强大的功能,小白也能快速上手,轻松制作可以热更新的游戏 | JEngine is a streamlined and easy-to-use framework designed for Unity Programmers which contains powerful features, beginners can start up quickly and making hot update-able games easily
Stars: ✭ 564 (-29.68%)
Mutual labels:  framework, game, unity3d
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (-77.68%)
Mutual labels:  framework, game, unity3d
Unity Core Project
Core Framework for Unity
Stars: ✭ 42 (-94.76%)
Mutual labels:  framework, game, unity3d
Knight
Knight is a game framework based on Unity3D engine. It includes a complete assetbundle manager, a c# hotfix module based on ILRuntime, and a UI module based on MVVM, and other basic functions support.
Stars: ✭ 302 (-62.34%)
Mutual labels:  framework, unity3d, mvvm
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (-47.01%)
Mutual labels:  mvvm, databinding
Framework
Machine learning, computer vision, statistics and general scientific computing for .NET
Stars: ✭ 4,177 (+420.82%)
Mutual labels:  framework, unity3d
Fungus
An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
Stars: ✭ 786 (-2%)
Mutual labels:  game, unity3d
Airtest
UI Automation Framework for Games and Apps
Stars: ✭ 5,733 (+614.84%)
Mutual labels:  game, unity3d
Mvvm Juejin
高仿"掘金Android App": databinding + kotlin + rx 的优雅实践。(持续打磨中~)
Stars: ✭ 403 (-49.75%)
Mutual labels:  mvvm, databinding
Lgame
A cross-platform Java game Engine (Framework) , support JavaFX / Android / IOS / HTML5 / Linux / MAC / Windows
Stars: ✭ 467 (-41.77%)
Mutual labels:  framework, game
Dotvvm
Open source MVVM framework for Web Apps
Stars: ✭ 523 (-34.79%)
Mutual labels:  framework, mvvm
Redrunner
Red Runner, Awesome Platformer Game.
Stars: ✭ 414 (-48.38%)
Mutual labels:  game, unity3d
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (-48.88%)
Mutual labels:  mvvm, databinding
Android Mvvm
MVVM on Android using RxJava and Data Binding
Stars: ✭ 443 (-44.76%)
Mutual labels:  mvvm, databinding
Multiplayer Fps
🎮 A multiplayer first person shooter game based on Unity Game Engine
Stars: ✭ 404 (-49.63%)
Mutual labels:  game, unity3d
San
A fast, portable, flexible JavaScript component framework
Stars: ✭ 4,514 (+462.84%)
Mutual labels:  framework, mvvm
Waf
Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.
Stars: ✭ 539 (-32.79%)
Mutual labels:  framework, mvvm
People Mvvm
Sample created to practice MVVM and DataBinding in Android Applications.
Stars: ✭ 660 (-17.71%)
Mutual labels:  mvvm, databinding

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.

If you like this framework or think it is useful, please write a review on AssetStore or give me a STAR or FORK it on Github, thank you!

Tested in Unity 3D on the following platforms:
PC/Mac/Linux
IOS
Android
UWP(window10)
WebGL

Installation

Install via OpenUPM (recommended)

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": [
        "com.vovgou",
        "com.openupm"
      ]
    }
  ]
}

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

  • Unity 2019 and later versions can import examples through Package Manager.

  • If the Editor is Unity 2018 version, please find Examples.unitypackage and Tutorials.unitypackage in the "Packages/Loxodon Framework/Package Resources/" folder, double-click to import into the project.

English manual

Key Features:

  • MVVM Framework;
  • Multiple platforms;
  • Higher Extensibility;
  • async&await (C#&Lua)
  • try&catch&finally for lua
  • XLua support(You can make your game in lua.);
  • Asynchronous result and asynchronous task are supported;
  • Scheduled Executor and Multi-threading;
  • Messaging system support;
  • Preferences can be encrypted;
  • Localization support;
  • Databinding support:
    • Field binding;
    • Property binding;
    • Dictionary,list and array binding;
    • Event binding;
    • Unity3d's EventBase binding;
    • Static property and field binding;
    • Method binding;
    • Command binding;
    • ObservableProperty,ObservableDictionary and ObservableList binding;
    • Expression binding;

Notes

  • .Net2.0 and .Net2.0 Subset,please use version 1.9.x.
  • LoxodonFramework 2.0 supports .Net4.x and .Net Standard2.0
  • LoxodonFramework 2.0 supports Mono and IL2CPP

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();

        bindingSet.Build();
    }
}


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 = "";        
}

Plugins

  • Loxodon Framework Localization For CSV

    It supports localization files in csv format, requires Unity2018.4 or higher.

  • Loxodon Framework XLua

    It supports making games with lua scripts.

    • Installation

      • If Loxodon.Framework 2.0 is not installed, please install it first.

      • You can download the latest version of xlua from Xlua's Github repository,the file name is usually xlua_v2.x.xx.zip, unzip and copy it to your project.XLua Download

      • Download Loxodon.Framework.XLua.unitypackage from github and import it into your Unity project.

      • In Unity2018 and above, if you use .net 4.x and .net standard 2.0, there will be compatibility issues. Please see the xlua's FAQs. XLua FAQ

      • Find Examples.unitypackage in the "Assets/LoxodonFramework/XLua/Package Resources" folder and import it into the project.

    • Lua precompilation tool

  • Loxodon Framework Bundle

    Loxodon Framework Bundle is an AssetBundle manager.It provides a functionality that can automatically manage/load an AssetBundle and its dependencies from local or remote location.Asset Dependency Management including BundleManifest that keep track of every AssetBundle and all of their dependencies. An AssetBundle Simulation Mode which allows for iterative testing of AssetBundles in a the Unity editor without ever building an AssetBundle.

    The asset redundancy analyzer can help you find the redundant assets included in the AssetsBundles.Create a fingerprint for the asset by collecting the characteristic data of the asset. Find out the redundant assets in all AssetBundles by fingerprint comparison.it only supports the AssetBundle of Unity 5.6 or higher.

  • Loxodon Framework Log4Net

    This is a log plugin.It helps you to use Log4Net in the Unity3d.

  • Loxodon Framework Obfuscation

    NOTE:Please enable "Allow unsafe Code"

    Example:

      ObfuscatedInt  length = 200;
      ObfuscatedFloat scale = 20.5f;
      int offset = 30;
      
      float value = (length * scale) + offset;
    
  • Loxodon Framework Addressable

  • Loxodon Framework Connection

    This is a network connection component, implemented using TcpClient, supports IPV6 and IPV4, automatically recognizes the current network when connecting with a domain name, and preferentially connects to the IPV4 network.

  • Json.Net.Aot

    This implementation is actually a fork of the excellent work of SaladLab, Json.Net.Unity3D, and of course, the excellent work of the initial author, Newtonsoft!

  • LiteDB

    LiteDB is a small, fast and lightweight NoSQL embedded database.

  • SQLite4Unity3d

    When I started with Unity3d development I needed to use SQLite in my project and it was very hard to me to find a place with simple instructions on how to make it work. All I got were links to paid solutions on the Unity3d's Assets Store and a lot of different and complicated tutorials.

    At the end, I decided that there should be a simpler way and I created SQLite4Unity3d, a plugin that helps you to use SQLite in your Unity3d projects in a clear and easy way and works in iOS, Mac, Android and Windows projects.

    It uses the great sqlite-net library as a base so you will have Linq besides sql. For a further reference on what possibilities you have available with this library I encourage you to visit its github repository.

Tutorials and Examples

Introduction

  • Window View

  • Localization

  • Databinding

  • Variable Example

  • ListView Binding

Contact Us

Email: [email protected]
Website: https://vovgou.github.io/loxodon-framework/
QQ Group: 622321589 15034148

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].