public static bool SetHierarchical(this LuaOnStackUserData ud, string key, object val)
        {
            if (ud == null || ud.L == IntPtr.Zero)
            {
                return(false);
            }
            var l = ud.L;

            using (var lr = new LuaStateRecover(l))
            {
                if (ud.PushToLua())
                {
                    return(SetHierarchical(l, -1, key, val));
                }
                return(false);
            }
        }
예제 #2
0
 public static BaseLua CreateUserDataAndExpandExFields(this CapsUnityLuaBehav behav)
 {
     using (var lr = GlobalLua.CreateStackRecover())
     {
         var l  = GlobalLua.L;
         var ud = new LuaOnStackUserData(l, behav);
         ud.PushToLua();
         l.pushvalue(-1);
         var refid = l.refer();
         l.newtable();
         l.SetField(-2, "___ex");
         foreach (var kvp in behav.ExpandExVal())
         {
             if (!(kvp.Value is CapsUnityLuaBehav.NotAvailableExVal))
             {
                 ud.SetHierarchical("___ex." + kvp.Key, kvp.Value);
             }
         }
         return(new BaseLua(l, refid));
     }
 }