Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
/ UnLua Public
forked from Tencent/UnLua

A feature-rich, easy-learning and highly optimized Lua scripting plugin for UE4.

License

Notifications You must be signed in to change notification settings

astron10/UnLua

Open more actions menu
 
 

Repository files navigation

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, UPROPERTY, 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 local function invoking, 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, UPROPERTY, 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.24.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

About

A feature-rich, easy-learning and highly optimized Lua scripting plugin for UE4.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 93.4%
  • Lua 4.8%
  • C# 1.5%
  • C 0.3%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.