Git Product home page Git Product logo

unlua's Introduction

LOGO

Overview

UnLua is a feature-rich, easy-learning and highly optimized scripting solution for UE4. UnLua follows the programming pattern of UE4. UE4 programmers can use it at zero learning cost.

Main features

  • Access all UCLASS, UPROPETY, UFUNCTION, USTRUCT, UENUM without glue codes.
  • Override 'BlueprintEvent' (UFUNCTIONs tagged with 'BlueprintImplementableEvent' or 'BlueprintNativeEvent', All Events/Functions defined in Blueprints) without helper codes.
  • Override Replication Notify without helper codes.
  • Override Animation Notify without helper codes.
  • Override Input Event without helper codes.
  • Simple solution to export classes, member variables, member functions, global functions and enums outside the reflection system statically.
  • Highly optimized UFUNCTION invoking (including persistent parameters buffer, optimized parameters passing, optimized output values handling).
  • Optimized containers (TArray, TSet, TMap) accessing. There is no conversion between Lua table and containers.
  • Optimized structure accessing.

More features

  • Support default parameters of UFUNCTION (tagged with 'BlueprintCallable' or 'Exec') parameters.
  • Support customized collision enums.
  • Support server/clients simulation in editor.
  • Support exporting Lua template file for blueprints.
  • Support calling Latent functions in Lua coroutines.

Modules

  • UnLua. Main 'Runtime' module.
  • UnLuaEditor. 'Editor' module includes editor extention (Lua template exporting) and a commandlet.
  • UnLuaDefaultParamCollector. 'Program' module to collect default parameters for UFUNCTION.
  • UnLuaIntelliSense. 'Program' module to generate IntelliSense (symbols) of all UCLASS, UPROPETY, UFUNCTION, USTRUCT, UENUM for a private IDE (which will be PUBLIC soon). It's disabled by default.

Supported engine versions

Unreal Engine 4.17.x - Unreal Engine 4.23.x

NOTE: build.cs files need tiny modifications under 4.17.x and 4.18.x.

Quick start

  • Create a new Blueprint.

CREATE_BLUEPRINT

  • Implement 'UnLuaInterface'.

IMPLEMENT_UnLuaInterface

  • Return a Lua file path (relative to 'Content/Script') in 'GetModuleName'.

IMPLEMENT_GetModuleName

  • Create Lua template.

CREATE_LUA_TEMPLATE

  • Generated Lua template.

GENERATED_LUA_TEMPLATE

  • Add Lua codes to Lua template.

FINAL_LUA_FILE

Documentation

License

unlua's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.