Esempio n. 1
0
 public static void Bind(IntPtr L)
 {
     objectWrap.Register(L);
     ObjectWrap.Register(L);
     ApplicationWrap.Register(L);
     BaseLuaWrap.Register(L);
     BehaviourWrap.Register(L);
     ByteBufferWrap.Register(L);
     ComponentWrap.Register(L);
     ConstWrap.Register(L);
     GameObjectWrap.Register(L);
     GlobalWrap.Register(L);
     HashtableWrap.Register(L);
     iooWrap.Register(L);
     LuaHelperWrap.Register(L);
     MonoBehaviourWrap.Register(L);
     NetworkManagerWrap.Register(L);
     PanelManagerWrap.Register(L);
     ResourceManagerWrap.Register(L);
     TimerManagerWrap.Register(L);
     TimeWrap.Register(L);
     TransformWrap.Register(L);
     TypeWrap.Register(L);
     UIEventListenerWrap.Register(L);
     UtilWrap.Register(L);
     Vector2Wrap.Register(L);
     Vector3Wrap.Register(L);
 }
Esempio n. 2
0
 public static void Bind(IntPtr L)
 {
     AnimationBlendModeWrap.Register(L);
     AnimationClipWrap.Register(L);
     AnimationStateWrap.Register(L);
     AnimationWrap.Register(L);
     ApplicationWrap.Register(L);
     AssetBundleWrap.Register(L);
     AsyncOperationWrap.Register(L);
     AudioClipWrap.Register(L);
     AudioSourceWrap.Register(L);
     BaseLuaWrap.Register(L);
     BehaviourWrap.Register(L);
     BlendWeightsWrap.Register(L);
     BoxColliderWrap.Register(L);
     ByteBufferWrap.Register(L);
     CameraClearFlagsWrap.Register(L);
     CameraWrap.Register(L);
     CharacterControllerWrap.Register(L);
     ColliderWrap.Register(L);
     ComponentWrap.Register(L);
     ConstWrap.Register(L);
     DebuggerWrap.Register(L);
     DelegateWrap.Register(L);
     EnumWrap.Register(L);
     GameObjectWrap.Register(L);
     IEnumeratorWrap.Register(L);
     InputWrap.Register(L);
     iooWrap.Register(L);
     KeyCodeWrap.Register(L);
     LightTypeWrap.Register(L);
     LightWrap.Register(L);
     LuaHelperWrap.Register(L);
     MaterialWrap.Register(L);
     MeshColliderWrap.Register(L);
     MeshRendererWrap.Register(L);
     MonoBehaviourWrap.Register(L);
     NetworkManagerWrap.Register(L);
     ObjectWrap.Register(L);
     PanelManagerWrap.Register(L);
     ParticleAnimatorWrap.Register(L);
     ParticleEmitterWrap.Register(L);
     ParticleRendererWrap.Register(L);
     ParticleSystemWrap.Register(L);
     PhysicsWrap.Register(L);
     PlayModeWrap.Register(L);
     QualitySettingsWrap.Register(L);
     QueueModeWrap.Register(L);
     RectTransformWrap.Register(L);
     RendererWrap.Register(L);
     RenderSettingsWrap.Register(L);
     RenderTextureWrap.Register(L);
     ResourceManagerWrap.Register(L);
     ScreenWrap.Register(L);
     SkinnedMeshRendererWrap.Register(L);
     SleepTimeoutWrap.Register(L);
     SpaceWrap.Register(L);
     SphereColliderWrap.Register(L);
     stringWrap.Register(L);
     System_ObjectWrap.Register(L);
     TextureWrap.Register(L);
     TimerManagerWrap.Register(L);
     TimeWrap.Register(L);
     TouchPhaseWrap.Register(L);
     TrackedReferenceWrap.Register(L);
     TransformWrap.Register(L);
     TypeWrap.Register(L);
     UnityEngine_UI_TextWrap.Register(L);
     UtilWrap.Register(L);
 }
Esempio n. 3
0
        /// <summary>
        /// 数据结构定义
        /// </summary>
        private static void GenDataStruct()
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("local Stream = require(\"Common.DataStream\")");
            builder.AppendLine("local GetOrCreate = Util.GetOrCreate");
            builder.AppendLine();
            builder.AppendLine("local meta");

            var cit = ClassWrap.Classes.GetEnumerator();

            while (cit.MoveNext())
            {
                var cls      = cit.Current.Value;
                var fullType = Util.CorrectFullType(cls.FullName);
                builder.AppendLine("meta= {}");
                builder.AppendLine("meta.__index = meta");
                builder.AppendFormat("meta.__cname = '{0}'\n", fullType);

                //--常量字段
                for (int j = 0; j < cls.Consts.Count; j++)
                {
                    ConstWrap constant = cls.Consts[j];
                    if (!Util.MatchGroups(constant.Group))
                    {
                        continue;
                    }

                    string value = constant.Value;
                    switch (constant.FullName)
                    {
                    case Setting.BOOL:
                        value = value.ToLower();
                        break;

                    case Setting.STRING:
                        value = string.Format("'{0}'", value);
                        break;

                    default:
                        if (EnumWrap.IsEnum(constant.FullName))
                        {
                            value = EnumWrap.Enums[constant.FullName].GetValue(constant.Value);
                        }
                        break;
                    }
                    builder.AppendFormat("meta.{0} = {1}\n", constant.Name, value);
                }

                builder.AppendFormat("GetOrCreate('{0}.{1}')['{2}'] = meta\n", Setting.ModuleName, cls.Namespace, cls.Name);
                string funcName = fullType.Replace(".", "");
                if (cls.IsDynamic())
                {
                    builder.AppendFormat("function Stream:Get{0}Maker()\n", funcName);
                    builder.Space().AppendFormat("return self['Get' .. self:GetString():gsub('%.', '')](self)\n");
                    builder.AppendFormat("end\n");
                }
                builder.AppendFormat("function Stream:Get{0}()\n", funcName);
                if (!cls.Inherit.IsEmpty())
                {
                    builder.Space().AppendFormat("local o = self:Get{0}()\n", Util.CorrectFullType(cls.Inherit).Replace(".", ""));
                }
                else
                {
                    builder.Space().AppendFormat("local o = {{}}\n");
                }
                builder.Space().AppendFormat("setmetatable(o, {0})\n", fullType);

                //--普通字段
                for (int j = 0; j < cls.Fields.Count; j++)
                {
                    FieldWrap field = cls.Fields[j];
                    if (!Util.MatchGroups(field.Group))
                    {
                        continue;
                    }

                    if (field.IsRaw)
                    {
                        builder.Space().AppendFormat("o.{0} = self:Get{1}()\n", field.Name, field.OriginalType.FirstCharUpper());
                    }
                    else if (field.IsEnum)
                    {
                        builder.Space().AppendFormat("o.{0} = self:GetInt()\n", field.Name);
                    }
                    else if (field.IsClass)
                    {
                        if (field.IsDynamic)
                        {
                            builder.Space().AppendFormat("o.{0} = self:Get{1}Maker()\n", field.Name, Util.CorrectFullType(field.OriginalType).Replace(".", ""));
                        }
                        else
                        {
                            builder.Space().AppendFormat("o.{0} = self:Get{1}()\n", field.Name, Util.CorrectFullType(field.OriginalType).Replace(".", ""));
                        }
                    }
                    else if (field.IsContainer)
                    {
                        if (field.OriginalType == Setting.LIST)
                        {
                            var    item  = field.GetItemDefine();
                            string index = Util.CorrectFullType(item.OriginalType).Replace(".", "").FirstCharUpper();
                            if (item.IsClass && item.IsDynamic)
                            {
                                index += "Maker";
                            }
                            builder.Space().AppendFormat("o.{0} = self:GetList('{1}')\n", field.Name, index);
                        }
                        else if (field.OriginalType == Setting.DICT)
                        {
                            var    k   = field.GetKeyDefine();
                            string key = k.OriginalType.FirstCharUpper();
                            if (k.IsEnum)
                            {
                                key = "Int";
                            }
                            var    v     = field.GetValueDefine();
                            string value = Util.CorrectFullType(v.OriginalType).Replace(".", "").FirstCharUpper();
                            if (v.IsClass && v.IsDynamic)
                            {
                                value += "Maker";
                            }
                            else if (v.IsEnum)
                            {
                                value = "Int";
                            }
                            builder.Space().AppendFormat("o.{0} = self:GetDict('{1}', '{2}')\n", field.Name, key, value);
                        }
                    }
                }
                builder.Space().AppendFormat("return o\n");
                builder.AppendFormat("end\n");
            }

            var eit = EnumWrap.Enums.GetEnumerator();

            while (eit.MoveNext())
            {
                EnumWrap en = eit.Current.Value;
                builder.AppendFormat("GetOrCreate('{0}.{1}')['{2}'] = {{\n", Setting.ModuleName, en.Namespace, en.Name);
                foreach (var item in en.Values)
                {
                    builder.Space().AppendFormat("{0} = {1},\n", item.Key, item.Value);
                }
                builder.AppendLine("}");
            }
            builder.AppendLine("return Stream");
            string path = Path.Combine(Setting.LuaDir, DATA_STRUCT + ".lua");

            Util.SaveFile(path, builder.ToString());
        }
Esempio n. 4
0
        /// <summary>
        /// 数据结构
        /// </summary>
        static void GenDataStruct(StringBuilder builder, ClassWrap cls)
        {
            string extends = cls.Inherit.IsEmpty() ? " " : $" extends {CorrectNamespace(cls.Inherit)} ";

            builder.AppendLine($"/** {cls.Desc} */")
            .AppendLine($"export class {cls.Name}{extends}{{");
            for (int j = 0; j < cls.Consts.Count; j++)
            {
                ConstWrap cst = cls.Consts[j];
                if (!Util.MatchGroups(cst.Group))
                {
                    continue;
                }
                string value = cst.Value;
                switch (cst.FullName)
                {
                case Setting.BOOL:
                    value = value.ToLower();
                    break;

                case Setting.STRING:
                    value = string.Format("'{0}'", value);
                    break;

                default:
                    if (EnumWrap.IsEnum(cst.FullName))
                    {
                        string enumName = EnumWrap.Enums[cst.FullName].GetEnumName(value);
                        enumName = enumName.IsEmpty() ? value : enumName;
                        value    = string.Format("{0}.{1}", CorrectNamespace(cst.FullName), enumName);
                    }
                    break;
                }
                builder.Space().AppendLine($"/** {cst.Desc} */")
                .Space().AppendLine($"static readonly {cst.Name} = {value};");
            }
            foreach (var item in cls.Fields)
            {
                builder.Space().AppendLine($"/** {item.Desc} */")
                .Space().AppendLine($"readonly {item.Name}: {GetType(item)};");
            }
            builder.Space().AppendLine("constructor(o: any) {");
            if (!cls.Inherit.IsEmpty())
            {
                builder.Space(2).AppendLine("super(o);");
            }
            foreach (var item in cls.Fields)
            {
                builder.Space(2).AppendLine($"this.{item.Name} = {GetDefineName(item)};");
            }
            builder.Space().AppendLine("}")
            .AppendLine("}");

            if (cls.IsDynamic())
            {
                builder.AppendLine($"Object.defineProperty(Stream.prototype, 'Get{GetDefineName(cls.FullName)}', {{")
                .Space().AppendLine("value: function (this: any) { return this[`Get${this.GetString().replace(/[\\.]+/g, '')}`](); },")
                .Space().AppendLine("writable: false,")
                .AppendLine("});");
            }
            builder.AppendLine($"Object.defineProperty(Stream.prototype, 'Get{GetDefineName(cls.FullName, false)}', {{")
            .Space().AppendLine($"value: function(this: any) {{ return new {cls.Name}(this); }},")
            .Space().AppendLine("writable: false,")
            .AppendLine("});");
        }
Esempio n. 5
0
    public static void Bind(LuaState L)
    {
        float t = Time.realtimeSinceStartup;

        L.BeginModule(null);
        LuaInterface_DebuggerWrap.Register(L);
        eyeWrap.Register(L);
        UtilsWrap.Register(L);
        ConstWrap.Register(L);
        GlobalWrap.Register(L);
        ShareDataWrap.Register(L);
        ByteBufferWrap.Register(L);
        FileUtilWrap.Register(L);
        StringUtilWrap.Register(L);
        TableUtilWrap.Register(L);
        LogUtilWrap.Register(L);
        IniUtilWrap.Register(L);
        PathUtilWrap.Register(L);
        GameManagerWrap.Register(L);
        ResourceManagerWrap.Register(L);
        ObjectPoolManagerWrap.Register(L);
        NetworkManagerWrap.Register(L);
        AudioManagerWrap.Register(L);
        NotificationManagerWrap.Register(L);
        LocalizationWrap.Register(L);
        DeviceHelperWrap.Register(L);
        ArmyMoveWrap.Register(L);
        ProgressSpriteWrap.Register(L);
        UIModWrap.Register(L);
        UISystemWrap.Register(L);
        UIManagerWrap.Register(L);
        UIButtonWrap.Register(L);
        UIButtonAgentWrap.Register(L);
        UIInputFieldWrap.Register(L);
        UIInputFieldSubmitWrap.Register(L);
        UISliderWrap.Register(L);
        UIScrollRectWrap.Register(L);
        UIScrollPageWrap.Register(L);
        UIScrollBaseWrap.Register(L);
        UIScrollRingWrap.Register(L);
        UIScrollViewWrap.Register(L);
        UIClippingLoopWrap.Register(L);
        UIDragSensorWrap.Register(L);
        UITextWrap.Register(L);
        UIToggleWrap.Register(L);
        UITweenWrap.Register(L);
        UITweenRectPositionWrap.Register(L);
        UITweenRectPositionBetweenWrap.Register(L);
        UITweenFadeWrap.Register(L);
        UITweenColorWrap.Register(L);
        UITweenLocalPositionWrap.Register(L);
        UITweenLocalPositionBetweenWrap.Register(L);
        UITweenScaleWrap.Register(L);
        UITweenScale1Wrap.Register(L);
        UITweenPositionWrap.Register(L);
        UITweenSizeDeltaWrap.Register(L);
        UITweenCityBuildingWrap.Register(L);
        UITweenMoveWrap.Register(L);
        UITweenJumpWrap.Register(L);
        UITweenPathWrap.Register(L);
        UITextTimeCountdownWrap.Register(L);
        UITextNumCountdownWrap.Register(L);
        UITextUnderlineWrap.Register(L);
        UIProgressWrap.Register(L);
        FXTypeWriterWrap.Register(L);
        TypeWriterWrap.Register(L);
        UITextAutoOmitWrap.Register(L);
        UIPopWindowWrap.Register(L);
        UIGradientWrap.Register(L);
        ShakeWrap.Register(L);
        UIHighLightMaskWrap.Register(L);
        ReferenceWrap.Register(L);
        UIPolygonChartWrap.Register(L);
        UIAutoSizeWrap.Register(L);
        UITextAgentWrap.Register(L);
        SpriteAnimationWrap.Register(L);
        YlyAssetIdentifyWrap.Register(L);
        YlyRichTextWrap.Register(L);
        YlyDelegateUtilWrap.Register(L);
        GizmoPlaneWrap.Register(L);
        GizmoBezierLineWrap.Register(L);
        BezierWrap.Register(L);
        BezierMoveWrap.Register(L);
        CityWrap.Register(L);
        CityCameraWrap.Register(L);
        CityBuildingWrap.Register(L);
        CityLandWrap.Register(L);
        CharacterWrap.Register(L);
        MapBorderWrap.Register(L);
        MapUnitMoveWrap.Register(L);
        WorldMapCameraWrap.Register(L);
        WorldMapThumbCameraWrap.Register(L);
        ScreenBlurWrap.Register(L);
        ChannelSDKWrap.Register(L);
        UIPrimitiveBaseWrap.Register(L);
        L.BeginModule("UnityEngine");
        UnityEngine_ComponentWrap.Register(L);
        UnityEngine_TransformWrap.Register(L);
        UnityEngine_MaterialWrap.Register(L);
        UnityEngine_CameraWrap.Register(L);
        UnityEngine_AudioSourceWrap.Register(L);
        UnityEngine_BehaviourWrap.Register(L);
        UnityEngine_MonoBehaviourWrap.Register(L);
        UnityEngine_GameObjectWrap.Register(L);
        UnityEngine_TrackedReferenceWrap.Register(L);
        UnityEngine_ApplicationWrap.Register(L);
        UnityEngine_PhysicsWrap.Register(L);
        UnityEngine_ColliderWrap.Register(L);
        UnityEngine_TimeWrap.Register(L);
        UnityEngine_TextureWrap.Register(L);
        UnityEngine_Texture2DWrap.Register(L);
        UnityEngine_ShaderWrap.Register(L);
        UnityEngine_RendererWrap.Register(L);
        UnityEngine_WWWWrap.Register(L);
        UnityEngine_ScreenWrap.Register(L);
        UnityEngine_CameraClearFlagsWrap.Register(L);
        UnityEngine_AudioClipWrap.Register(L);
        UnityEngine_AssetBundleWrap.Register(L);
        UnityEngine_ParticleSystemWrap.Register(L);
        UnityEngine_AsyncOperationWrap.Register(L);
        UnityEngine_LightTypeWrap.Register(L);
        UnityEngine_SleepTimeoutWrap.Register(L);
        UnityEngine_AnimatorWrap.Register(L);
        UnityEngine_InputWrap.Register(L);
        UnityEngine_KeyCodeWrap.Register(L);
        UnityEngine_SkinnedMeshRendererWrap.Register(L);
        UnityEngine_SpaceWrap.Register(L);
        UnityEngine_AnimationBlendModeWrap.Register(L);
        UnityEngine_QueueModeWrap.Register(L);
        UnityEngine_PlayModeWrap.Register(L);
        UnityEngine_WrapModeWrap.Register(L);
        UnityEngine_QualitySettingsWrap.Register(L);
        UnityEngine_RenderSettingsWrap.Register(L);
        UnityEngine_ResourcesWrap.Register(L);
        UnityEngine_SpriteRendererWrap.Register(L);
        UnityEngine_MotionWrap.Register(L);
        UnityEngine_SpriteWrap.Register(L);
        UnityEngine_CanvasWrap.Register(L);
        UnityEngine_RectTransformWrap.Register(L);
        UnityEngine_RectWrap.Register(L);
        UnityEngine_TextGeneratorWrap.Register(L);
        UnityEngine_UICharInfoWrap.Register(L);
        UnityEngine_TextGenerationSettingsWrap.Register(L);
        UnityEngine_GUIUtilityWrap.Register(L);
        UnityEngine_Color32Wrap.Register(L);
        L.BeginModule("Experimental");
        L.BeginModule("Director");
        UnityEngine_Experimental_Director_PlayableWrap.Register(L);
        L.EndModule();
        L.EndModule();
        L.BeginModule("SceneManagement");
        UnityEngine_SceneManagement_SceneManagerWrap.Register(L);
        L.EndModule();
        L.BeginModule("UI");
        UnityEngine_UI_LayoutGroupWrap.Register(L);
        UnityEngine_UI_ImageWrap.Register(L);
        UnityEngine_UI_SelectableWrap.Register(L);
        UnityEngine_UI_ButtonWrap.Register(L);
        UnityEngine_UI_InputFieldWrap.Register(L);
        UnityEngine_UI_SliderWrap.Register(L);
        UnityEngine_UI_ScrollRectWrap.Register(L);
        UnityEngine_UI_TextWrap.Register(L);
        UnityEngine_UI_ToggleWrap.Register(L);
        UnityEngine_UI_GridLayoutGroupWrap.Register(L);
        UnityEngine_UI_LayoutElementWrap.Register(L);
        UnityEngine_UI_MaskableGraphicWrap.Register(L);
        UnityEngine_UI_GraphicWrap.Register(L);
        UnityEngine_UI_BaseMeshEffectWrap.Register(L);
        L.BeginModule("InputField");
        L.RegFunction("OnValidateInput", UnityEngine_UI_InputField_OnValidateInput);
        L.EndModule();
        L.EndModule();
        L.BeginModule("EventSystems");
        UnityEngine_EventSystems_UIBehaviourWrap.Register(L);
        L.EndModule();
        L.BeginModule("Events");
        L.RegFunction("UnityAction", UnityEngine_Events_UnityAction);
        L.RegFunction("UnityAction_UnityEngine_SceneManagement_Scene_UnityEngine_SceneManagement_LoadSceneMode", UnityEngine_Events_UnityAction_UnityEngine_SceneManagement_Scene_UnityEngine_SceneManagement_LoadSceneMode);
        L.RegFunction("UnityAction_UnityEngine_SceneManagement_Scene", UnityEngine_Events_UnityAction_UnityEngine_SceneManagement_Scene);
        L.RegFunction("UnityAction_UnityEngine_SceneManagement_Scene_UnityEngine_SceneManagement_Scene", UnityEngine_Events_UnityAction_UnityEngine_SceneManagement_Scene_UnityEngine_SceneManagement_Scene);
        L.EndModule();
        L.BeginModule("Camera");
        L.RegFunction("CameraCallback", UnityEngine_Camera_CameraCallback);
        L.EndModule();
        L.BeginModule("Application");
        L.RegFunction("LowMemoryCallback", UnityEngine_Application_LowMemoryCallback);
        L.RegFunction("AdvertisingIdentifierCallback", UnityEngine_Application_AdvertisingIdentifierCallback);
        L.RegFunction("LogCallback", UnityEngine_Application_LogCallback);
        L.EndModule();
        L.BeginModule("AudioClip");
        L.RegFunction("PCMReaderCallback", UnityEngine_AudioClip_PCMReaderCallback);
        L.RegFunction("PCMSetPositionCallback", UnityEngine_AudioClip_PCMSetPositionCallback);
        L.EndModule();
        L.BeginModule("Canvas");
        L.RegFunction("WillRenderCanvases", UnityEngine_Canvas_WillRenderCanvases);
        L.EndModule();
        L.BeginModule("RectTransform");
        L.RegFunction("ReapplyDrivenProperties", UnityEngine_RectTransform_ReapplyDrivenProperties);
        L.EndModule();
        L.EndModule();
        L.BeginModule("OpenUDIDPhone");
        OpenUDIDPhone_OpenUDIDWrap.Register(L);
        L.EndModule();
        L.BeginModule("UITextTimeCountdown");
        UITextTimeCountdown_DirectTypeWrap.Register(L);
        L.EndModule();
        L.BeginModule("DragonBones");
        DragonBones_UnityFactoryWrap.Register(L);
        DragonBones_AnimationTimelineStateWrap.Register(L);
        DragonBones_AnimationFrameDataWrap.Register(L);
        DragonBones_AnimationStateWrap.Register(L);
        DragonBones_AnimationFadeOutModeWrap.Register(L);
        DragonBones_AnimationWrap.Register(L);
        DragonBones_AnimationDataWrap.Register(L);
        DragonBones_AnimationConfigWrap.Register(L);
        DragonBones_ActionDataWrap.Register(L);
        DragonBones_ActionTypeWrap.Register(L);
        DragonBones_ArmatureWrap.Register(L);
        DragonBones_ArmatureDataWrap.Register(L);
        DragonBones_ArmatureTypeWrap.Register(L);
        DragonBones_BoneWrap.Register(L);
        DragonBones_BoneDataWrap.Register(L);
        DragonBones_BoneFrameDataWrap.Register(L);
        DragonBones_BoneTimelineDataWrap.Register(L);
        DragonBones_BoneTimelineStateWrap.Register(L);
        DragonBones_DragonBonesWrap.Register(L);
        DragonBones_DragonBonesDataWrap.Register(L);
        DragonBones_TransformWrap.Register(L);
        DragonBones_TransformObjectWrap.Register(L);
        DragonBones_BaseObjectWrap.Register(L);
        DragonBones_EventObjectWrap.Register(L);
        DragonBones_UnityArmatureComponentWrap.Register(L);
        DragonBones_BaseFactoryWrap.Register(L);
        DragonBones_TimelineState_DragonBones_AnimationFrameData_DragonBones_AnimationDataWrap.Register(L);
        DragonBones_FrameData_DragonBones_AnimationFrameDataWrap.Register(L);
        DragonBones_TimelineData_DragonBones_AnimationFrameDataWrap.Register(L);
        DragonBones_TweenFrameData_DragonBones_BoneFrameDataWrap.Register(L);
        DragonBones_FrameData_DragonBones_BoneFrameDataWrap.Register(L);
        DragonBones_TimelineData_DragonBones_BoneFrameDataWrap.Register(L);
        DragonBones_TweenTimelineState_DragonBones_BoneFrameData_DragonBones_BoneTimelineDataWrap.Register(L);
        DragonBones_TimelineState_DragonBones_BoneFrameData_DragonBones_BoneTimelineDataWrap.Register(L);
        DragonBones_UnityEventDispatcher_DragonBones_EventObjectWrap.Register(L);
        L.RegFunction("ListenerDelegate_DragonBones_EventObject", DragonBones_ListenerDelegate_DragonBones_EventObject);
        L.EndModule();
        L.BeginModule("LKCamera");
        LKCamera_Camera2DWrap.Register(L);
        L.EndModule();
        L.BeginModule("System");
        L.RegFunction("Action", System_Action);
        L.RegFunction("Predicate_int", System_Predicate_int);
        L.RegFunction("Action_int", System_Action_int);
        L.RegFunction("Comparison_int", System_Comparison_int);
        L.RegFunction("Action_UnityEngine_Object", System_Action_UnityEngine_Object);
        L.EndModule();
        L.BeginModule("GameManager");
        L.RegFunction("LuaExecute", GameManager_LuaExecute);
        L.EndModule();
        L.BeginModule("AudioManager");
        L.RegFunction("SwitchChanged", AudioManager_SwitchChanged);
        L.EndModule();
        L.BeginModule("UIInputFieldSubmit");
        L.RegFunction("OnValidateInput", UIInputFieldSubmit_OnValidateInput);
        L.EndModule();
        L.BeginModule("UITween");
        L.RegFunction("OnFinish", UITween_OnFinish);
        L.EndModule();
        L.BeginModule("UIProgress");
        L.RegFunction("LuaCallback", UIProgress_LuaCallback);
        L.EndModule();
        L.BeginModule("YlyDelegateUtil");
        L.RegFunction("StringDelegate", YlyDelegateUtil_StringDelegate);
        L.EndModule();
        L.BeginModule("Character");
        L.RegFunction("OnEvent", Character_OnEvent);
        L.EndModule();
        L.EndModule();
        L.BeginPreLoad();
        L.AddPreLoad("UnityEngine.MeshRenderer", LuaOpen_UnityEngine_MeshRenderer, typeof(UnityEngine.MeshRenderer));
        L.AddPreLoad("UnityEngine.BoxCollider", LuaOpen_UnityEngine_BoxCollider, typeof(UnityEngine.BoxCollider));
        L.AddPreLoad("UnityEngine.MeshCollider", LuaOpen_UnityEngine_MeshCollider, typeof(UnityEngine.MeshCollider));
        L.AddPreLoad("UnityEngine.SphereCollider", LuaOpen_UnityEngine_SphereCollider, typeof(UnityEngine.SphereCollider));
        L.AddPreLoad("UnityEngine.CharacterController", LuaOpen_UnityEngine_CharacterController, typeof(UnityEngine.CharacterController));
        L.AddPreLoad("UnityEngine.CapsuleCollider", LuaOpen_UnityEngine_CapsuleCollider, typeof(UnityEngine.CapsuleCollider));
        L.AddPreLoad("UnityEngine.Animation", LuaOpen_UnityEngine_Animation, typeof(UnityEngine.Animation));
        L.AddPreLoad("UnityEngine.AnimationClip", LuaOpen_UnityEngine_AnimationClip, typeof(UnityEngine.AnimationClip));
        L.AddPreLoad("UnityEngine.AnimationState", LuaOpen_UnityEngine_AnimationState, typeof(UnityEngine.AnimationState));
        L.AddPreLoad("UnityEngine.BlendWeights", LuaOpen_UnityEngine_BlendWeights, typeof(UnityEngine.BlendWeights));
        L.AddPreLoad("UnityEngine.RenderTexture", LuaOpen_UnityEngine_RenderTexture, typeof(UnityEngine.RenderTexture));
        L.AddPreLoad("UnityEngine.Rigidbody", LuaOpen_UnityEngine_Rigidbody, typeof(UnityEngine.Rigidbody));
        L.EndPreLoad();
        Debugger.Log("Register lua type cost time: {0}", Time.realtimeSinceStartup - t);
    }
Esempio n. 6
0
        static void GenClass()
        {
            List <ClassWrap> classes = ClassWrap.GetExports();

            for (int i = 0; i < classes.Count; i++)
            {
                ClassWrap cls = classes[i];
                //命名空间
                builder.AppendLine(string.Join("\r\n", namespaces));
                builder.AppendLine($"namespace {Setting.ModuleName}.{cls.Namespace}");
                Start(0);
                {
                    //类
                    Comment(cls.Desc, TYPE_LEVEL);
                    builder.Space(TYPE_LEVEL).AppendLine(cls.Attribute);
                    if (cls.Inherit.IsEmpty())
                    {
                        builder.Space(TYPE_LEVEL).AppendLine($"public partial class {cls.Name} : {CLASS_XML_OBJECT}");
                    }
                    else
                    {
                        builder.Space(TYPE_LEVEL).AppendLine($"public partial class {cls.Name} : {Util.CorrectFullType(cls.Inherit)}");
                    }
                    Start(TYPE_LEVEL);
                    {
                        StringBuilder writer = new StringBuilder();
                        StringBuilder reader = new StringBuilder();
                        for (int j = 0; j < cls.Consts.Count; j++)
                        {
                            ConstWrap constant = cls.Consts[j];
                            if (!Util.MatchGroups(constant.Group))
                            {
                                continue;
                            }
                            Const(constant);//常量成员
                        }
                        for (int j = 0; j < cls.Fields.Count; j++)
                        {
                            FieldWrap field = cls.Fields[j];
                            if (!Util.MatchGroups(field.Group))
                            {
                                continue;
                            }

                            Field(field);             //字段成员
                            WriteFunc(writer, field); //写xml数据
                            ReadFunc(reader, field);  //读xml数据
                        }

                        //写函数
                        builder.Space(MEM_LEVEL);
                        builder.AppendLine($"public override void Write(TextWriter _1)");
                        Start(MEM_LEVEL);
                        if (!cls.Inherit.IsEmpty())
                        {
                            builder.Space(SEM_LEVEL).AppendLine("base.Write(_1);");
                        }
                        builder.Append(writer.ToString());
                        End(MEM_LEVEL);
                        //读函数
                        builder.Space(MEM_LEVEL);
                        builder.AppendLine($"public override void Read(XmlNode _1)");
                        Start(MEM_LEVEL);
                        {
                            if (!cls.Inherit.IsEmpty())
                            {
                                builder.Space(SEM_LEVEL).AppendLine("base.Read(_1);");
                            }
                            builder.Space(SEM_LEVEL).AppendLine($"foreach (System.Xml.XmlNode _2 in GetChilds (_1))");
                            builder.Space(SEM_LEVEL).AppendLine($"switch (_2.Name)");
                            Start(SEM_LEVEL);
                            builder.Append(reader.ToString());
                            End(SEM_LEVEL);
                        }
                        End(MEM_LEVEL);
                    }
                    End(TYPE_LEVEL);
                }
                End(0);
                string path = Path.Combine(Setting.XmlCodeDir, $"{Setting.ModuleName}.{cls.FullName}.cs");
                Util.SaveFile(path, builder.ToString());
                builder.Clear();
            }
        }
Esempio n. 7
0
 static void Const(ConstWrap constant)
 {
     Comment(constant.Desc, MEM_LEVEL);
     builder.Space(MEM_LEVEL);
     builder.AppendLine($"{CONST_MODIFIERS} {Util.CorrectFullType(constant.FullName)} {constant.Name} = {Util.CorrectConst(constant.FullName, constant.Value)};");
 }
Esempio n. 8
0
        static void GenClass()
        {
            List <ClassWrap> classes = ClassWrap.GetExports();

            for (int i = 0; i < classes.Count; i++)
            {
                ClassWrap cls = classes[i];
                //命名空间
                builder.AppendLine(string.Join("\r\n", namespaces));
                builder.AppendLine($"namespace {Setting.ModuleName}.{cls.Namespace}");
                Start(0);
                {
                    //类
                    Comment(cls.Desc, TYPE_LEVEL);
                    if (cls.Inherit.IsEmpty())
                    {
                        builder.Space(TYPE_LEVEL).AppendLine($"public class {cls.Name} : {CLASS_CFG_OBJECT}");
                    }
                    else
                    {
                        builder.Space(TYPE_LEVEL).AppendLine($"public class {cls.Name} : {Util.CorrectFullType(cls.Inherit)}");
                    }
                    Start(TYPE_LEVEL);
                    {
                        StringBuilder initer = new StringBuilder();
                        for (int j = 0; j < cls.Consts.Count; j++)
                        {
                            ConstWrap constant = cls.Consts[j];
                            if (!Util.MatchGroups(constant.Group))
                            {
                                continue;
                            }
                            Const(constant);//常量成员
                        }
                        for (int j = 0; j < cls.Fields.Count; j++)
                        {
                            FieldWrap field = cls.Fields[j];
                            if (!Util.MatchGroups(field.Group))
                            {
                                continue;
                            }

                            Field(field);             //字段成员
                            InitField(initer, field); //初始化字段语句
                        }

                        //构造函数
                        builder.Space(MEM_LEVEL);
                        if (cls.Inherit.IsEmpty())
                        {
                            builder.AppendLine($"public {cls.Name}({CLASS_DATA_STREAM} {ARG_DATASTREAM})");
                        }
                        else
                        {
                            builder.AppendLine($"public {cls.Name}({CLASS_DATA_STREAM} {ARG_DATASTREAM}) : base({ARG_DATASTREAM})");
                        }
                        Start(MEM_LEVEL);
                        builder.Append(initer.ToString());
                        End(MEM_LEVEL);

                        //配置加载函数
                        if (cls.IsConfig())
                        {
                            LoadFunc(ConfigWrap.Configs[cls.FullName]);
                        }
                    }
                    End(TYPE_LEVEL);
                }
                End(0);
                string path = Path.Combine(Setting.CSDir, cls.Namespace.Replace(Setting.DotSplit[0], '/'), $"{cls.Name}.cs");
                Util.SaveFile(path, builder.ToString());
                builder.Clear();
            }
        }