UE4 Unlua源码解析10 - Lua怎么替换BlueprintImplementableEvent或BlueprintNativeEvent的方法实现的

Lua怎么替换BlueprintImplementableEvent或BlueprintNativeEvent的方法实现的


时机发生在UUnLuaManager中绑定UObject和Lua Object的时候,具体到函数是BindInternal

在这里插入图片描述

648-649行是拿到所有的Lua方法,并且存储到LuaFunctions里,650-651行拿到所有的UE的所有BlueprintEvent和RepNotify方法,存起来,然后最重要的函数OverrideFunctions中,其实就是本小节的答案所在,在这个函数里用Lua的函数覆盖BlueprintImplementableEventBlueprintNativeEvent的方法

/**
 * Override candidate UFunctions
 */
void UUnLuaManager::OverrideFunctions(const TSet &LuaFunctions, TMap &UEFunctions, UClass *OuterClass, bool bCheckFuncNetMode)
{
    for (const FName &LuaFuncName : LuaFunctions)
    {
        UFunction **Func = UEFunctions.Find(LuaFuncName);
        if (Func)
        {
            UFunction *Function = *Func;
            OverrideFuncti

你可能感兴趣的:(UE4心血所著,lua,ue4,开发语言)