Inheritance: ICLS_Environment, ICLS_Environment_Compiler
Example #1
0
    private ScriptMgr()
    {
        env = new CSLE.CLS_Environment(new ScriptLogger());
        env.logger.Log("C#LightEvil Inited.Ver=" + env.version);

        RegTypes();
    }
Example #2
0
    private ScriptMgr()
    {
        env = new CSLE.CLS_Environment(new ScriptLogger());
        env.logger.Log("C#LightEvil Inited.Ver=" + env.version);

        RegTypes();
    }
Example #3
0
        public ScreenController(string name, IGameForModel game, IScreenForModel screen)
        {
            this.game   = game;
            this.screen = screen;


            IScriptModel script = game.GetModel("script") as IScriptModel;

            env = script.getScriptEnv();
            var type = env.GetTypeByKeywordQuiet(name) as CSLE.CLS_Type_Class;

            content    = new CSLE.CLS_Content(env);
            scriptThis = type.function.New(content, null).value as CSLE.SInstance;
            scriptThis.member["game"]         = new CSLE.CLS_Content.Value();
            scriptThis.member["game"].value   = game;
            scriptThis.member["game"].type    = typeof(IGameForModel);
            scriptThis.member["screen"]       = new CSLE.CLS_Content.Value();
            scriptThis.member["screen"].value = screen;
            scriptThis.member["screen"].type  = typeof(IScreenForModel);


            var typeasync = env.GetTypeByKeywordQuiet("IScreenControllerAsync") as CSLE.CLS_Type_Class;

            try
            {
                havetypeasync = (type.ConvertTo(content, scriptThis, typeasync.type) != null);
            }
            catch
            {
                havetypeasync = false;
            }
            Debug.Log(havetypeasync);
        }
Example #4
0
 public void Init()
 {
     if (env == null)
     {
         env = new CSLE.CLS_Environment(new ScriptLogger());
         env.logger.Log("C#LightEvil Inited.Ver=" + env.version);
     }
 }
Example #5
0
 public  void Init()
 {
     if (env == null)
     {
         env = new CSLE.CLS_Environment(new ScriptLogger());
         env.logger.Log("C#LightEvil Inited.Ver=" + env.version);
     }
 }
Example #6
0
 public void Reset(CSLE.ICLS_Logger logger)
 {
     if (logger == null)
     {
         logger = new ScriptLogger();
     }
     scriptEnv = new CSLE.CLS_Environment(logger);
     RegTypes();
     projectLoaded = false;
 }
    void Update()
    {
        if (m_doGenerate)
        {
            m_doGenerate = EditorUtility.DisplayDialog("", "Are you sure build?", "yes", "no");
        }

        if (m_doGenerate)
        {
            m_doGenerate = false;

            List <string> listPath   = m_listPath;
            List <bool>   listToggle = m_listToggle;

            List <string> tmpPaths = new List <string>();
            Dictionary <string, string> projectCodes = new Dictionary <string, string>();
            for (int i = 0; i < listPath.Count; i++)
            {
                if (listToggle[i])
                {
                    projectCodes.Add(listPath[i], System.IO.File.ReadAllText(listPath[i]));
                }
            }

            CheckFolder(AssetBundleTempFolder);

            if (projectCodes.Count > 0)
            {
                List <string>        classNames = new List <string>();
                CSLE.CLS_Environment csleEnv    = ToCSLight.CreateEnvironment();
                Dictionary <string, IList <CSLE.Token> > csleProject = csleEnv.Project_ParserToken(projectCodes);
                foreach (var pair in csleProject)
                {
                    string className = System.IO.Path.GetFileNameWithoutExtension(pair.Key);
                    string tmpPath   = AssetBundleTempFolder + className + ".bytes";
                    using (var fs = System.IO.File.OpenWrite(tmpPath))
                    {
                        csleEnv.TokenToStream(pair.Value, fs);
                    }
                    tmpPaths.Add(tmpPath);
                    classNames.Add(className);
                }

                string       cfgPath     = AssetBundleTempFolder + "class.asset";
                StringHolder classHolder = ScriptableObject.CreateInstance <StringHolder>();
                classHolder.content = classNames.ToArray();
                tmpPaths.Add(cfgPath);
                AssetDatabase.CreateAsset(classHolder, cfgPath);
            }

            BuildByName(tmpPaths, ScriptAssetBundleName);

            EditorUtility.DisplayDialog("finish", "success done!", "ok");
        }
    }
Example #8
0
    public void Reset(CSLE.ICLS_Logger logger)
    {
        if(logger ==null)
        {
            logger =new ScriptLogger(); 

        }
        scriptEnv = new CSLE.CLS_Environment(logger);
        RegTypes();
        projectLoaded = false;
    }
Example #9
0
 public static void InitCSLight()
 {
     env = new CSLE.CLS_Environment(new Logger());
     //env.RegType(new CSLE.RegHelper_Type(typeof(GameObject)));
     env.RegType(new MYGameObject());
     //env.RegType(new CSLE.RegHelper_Type(typeof(Debug)));
     env.RegType(new MYDebug());
     //env.RegType(new CSLE.RegHelper_Type(typeof(Transform)));
     env.RegType(new MYTransform());
     env.RegType(new CSLE.RegHelper_Type(typeof(Camera)));
     env.RegType(new CSLE.RegHelper_Type(typeof(Vector3)));
 }
Example #10
0
    public void BeginInit()
    {
        env = new CSLE.CLS_Environment(this);
        Log_Warn("C#Light Ver:" + env.version);

        //System
        env.RegType(new CSLE.RegHelper_Type(typeof(NotImplementedException), "NotImplementedException"));
        env.RegType(new CSLE.RegHelper_Type(typeof(Exception), "Exception"));
        env.RegType(new CSLE.RegHelper_Type(typeof(object), "object"));

        //Framework
        env.RegType(new CSLE.RegHelper_Type(typeof(IScreenForModel), "IScreenForModel"));
        env.RegType(new CSLE.RegHelper_Type(typeof(IGameForModel), "IGameForModel"));

        env.RegType(new CSLE.RegHelper_Type(typeof(IGameModel), "IGameForModel"));
        env.RegType(new CSLE.RegHelper_Type(typeof(IScriptModel), "IScriptModel"));
        env.RegType(new CSLE.RegHelper_Type(typeof(IUIToolModel), "IUIToolModel"));
        env.RegType(new CSLE.RegHelper_Type(typeof(IBlockSceneModel), "IBlockSceneModel"));

        //UnityEngine
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Debug), "Debug"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.GameObject), "GameObject"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Object), "Object"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Transform), "Transform"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.UI.Text), "Text"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.RectTransform), "RectTransform"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Vector2), "Vector2"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Vector3), "Vector3"));
        env.RegType(new CSLE.RegHelper_Type(typeof(UnityEngine.Vector4), "Vector4"));



        //直接编译模式
        string[] files = System.IO.Directory.GetFiles(Application.streamingAssetsPath + "/script", "*.cs", System.IO.SearchOption.AllDirectories);
        Dictionary <string, IList <CSLE.Token> > tokens = new Dictionary <string, IList <CSLE.Token> >();

        foreach (var f in files)
        {
            string code = System.IO.File.ReadAllText(f);
            var    t    = env.ParserToken(code);
            tokens[f] = t;
        }

        env.Project_Compiler(tokens, true);


        inited = true;
    }
Example #11
0
 public static void InitCSLight()
 {
     env = new CSLE.CLS_Environment(new Logger());
     //env.RegType(new CSLE.RegHelper_Type(typeof(GameObject)));
     env.RegType(new MYGameObject());
     //env.RegType(new CSLE.RegHelper_Type(typeof(Debug)));
     env.RegType(new MYDebug());      
     //env.RegType(new CSLE.RegHelper_Type(typeof(Transform)));
     env.RegType(new MYTransform());
     env.RegType(new CSLE.RegHelper_Type(typeof(Camera)));
     env.RegType(new CSLE.RegHelper_Type(typeof(Vector3)));
 }
    void ReadSInstance(ProtoReader reader, SInstance sInstance, CLS_Environment environment)
    {
        List<CLS_Content.Value> values;
        List<string> keywords;
        GetSortMembers(sInstance, out values, out keywords);

        int fieldNumber = 0;
        while ((fieldNumber = reader.ReadFieldHeader()) > 0)
        {
            Type memberT = values[fieldNumber - 1].type;
            CLS_Content.Value memberV = values[fieldNumber - 1];
            string sClassName = keywords[fieldNumber - 1];

            if (memberT == null)
            {
                memberT = typeof(SInstance);
                sClassName = ((SType)memberV.type).Name;
            }

            Type itemType = GetItemType(memberT);
            if (itemType != null)
            {
                sClassName = sInstance.type.members[sClassName].type.keyword;

                // 数组判断
                if (memberT.IsArray)
                {
                    string itemClass = sClassName.Substring(0, sClassName.Length - 2);  // 从 xxx[] 中提取xxx
                    BasicList list = new BasicList();
                    do
                    {
                        list.Add(ReadField(reader, itemType, itemClass, environment));
                    } while (reader.TryReadFieldHeader(fieldNumber));
                    Array result = Array.CreateInstance(itemType, list.Count);
                    list.CopyTo(result, 0);
                    memberV.value = result;
                }
                // 列表判断
                else
                {
                    string itemClass = sClassName.Substring(5, sClassName.Length - 6);  // 从 List<xxx> 中提取xxx
                    ICLS_Type iType = environment.GetTypeByKeywordQuiet(sClassName);
                    CLS_Content content = CLS_Content.NewContent(environment);
                    memberV.value = iType.function.New(content, m_emptyParams).value;
                    CLS_Content.PoolContent(content);
                    IList list = (IList)memberV.value;
                    do
                    {
                        list.Add(ReadField(reader, itemType, itemClass, environment));
                    } while (reader.TryReadFieldHeader(fieldNumber));
                }
            }
            else
            {
                memberV.value = ReadField(reader, memberT, sClassName, environment);
            }
        }
    }
 object ReadField(ProtoReader reader, Type memberT, string sClassName, CLS_Environment environment)
 {
     if (memberT == typeof(int))
     {
         return reader.ReadInt32();
     }
     else if (memberT == typeof(uint))
     {
         return reader.ReadUInt32();
     }
     else if (memberT == typeof(bool))
     {
         return reader.ReadBoolean();
     }
     else if (memberT == typeof(byte))
     {
         return reader.ReadByte();
     }
     else if (memberT == typeof(sbyte))
     {
         return reader.ReadSByte();
     }
     else if (memberT == typeof(float))
     {
         return reader.ReadSingle();
     }
     else if (memberT == typeof(double))
     {
         return reader.ReadDouble();
     }
     else if (memberT == typeof(short))
     {
         return reader.ReadInt16();
     }
     else if (memberT == typeof(ushort))
     {
         return reader.ReadUInt16();
     }
     else if (memberT == typeof(long))
     {
         return reader.ReadInt64();
     }
     else if (memberT == typeof(ulong))
     {
         return reader.ReadUInt64();
     }
     else if (memberT == typeof(string))
     {
         return reader.ReadString();
     }
     else if (memberT == typeof(byte[]))
     {
         return ProtoReader.AppendBytes(null, reader);
     }
     else if (memberT == typeof(SInstance))
     {
         SubItemToken st = ProtoReader.StartSubItem(reader);
         CLS_Type_Class sClass = environment.GetTypeByKeywordQuiet(sClassName) as CLS_Type_Class;
         if (!sClass.compiled)
             RuntimeCompilerClass(sClassName);
         CLS_Content content = CLS_Content.NewContent(environment);
         CLS_Content.Value retVal = sClass.function.New(content, m_emptyParams);
         CLS_Content.PoolContent(content);
         SInstance sInstance = (SInstance)retVal.value;
         ReadSInstance(reader, sInstance, environment);
         ProtoReader.EndSubItem(st, reader);
         return sInstance;
     }
     else
     {
         throw new NotImplementedException("未实现类型: " + memberT);
     }
 }
Example #14
0
    public static CLS_Environment CreateEnvironment()
    {
        CLS_Environment clsEnv = new CLS_Environment(new ScriptLogger());

        // 名空间注册
        clsEnv.RegType(new CLS_NameSpace("UnityEngine"));

        // 特殊类型注册
        clsEnv.RegType(new RegHelper_DeleAction<BaseEventData>(typeof(UnityAction<BaseEventData>), "UnityAction<BaseEventData>"));

        // gen start
        clsEnv.RegType(new ToCSLightBehaviour());
        clsEnv.RegType(new ToCSLightBoxCollider());
        clsEnv.RegType(new ToCSLightCollider());
        clsEnv.RegType(new ToCSLightColor());
        clsEnv.RegType(new ToCSLightComponent());
        clsEnv.RegType(new ToCSLightDebug());
        clsEnv.RegType(new ToCSLightGameObject());
        clsEnv.RegType(new ToCSLightMath());
        clsEnv.RegType(new ToCSLightMathf());
        clsEnv.RegType(new ToCSLightMonoBehaviour());
        clsEnv.RegType(new ToCSLightQuaternion());
        clsEnv.RegType(new ToCSLightSphereCollider());
        clsEnv.RegType(new ToCSLightTime());
        clsEnv.RegType(new ToCSLightTransform());
        clsEnv.RegType(new ToCSLightRandom());
        clsEnv.RegType(new ToCSLightVector2());
        clsEnv.RegType(new ToCSLightVector3());
        clsEnv.RegType(new RegHelper_DeleAction(typeof(Action), "Action"));
        clsEnv.RegType(new RegHelper_DeleAction<object>(typeof(Action<object>), "Action<object>"));
        clsEnv.RegType(new RegHelper_Type(typeof(Animator)));
        clsEnv.RegType(new RegHelper_Type(typeof(AnimatorStateInfo)));
        clsEnv.RegType(new RegHelper_Type(typeof(Application)));
        clsEnv.RegType(new RegHelper_Type(typeof(BaseEventData)));
        clsEnv.RegType(new RegHelper_Type(typeof(Button)));
        clsEnv.RegType(new RegHelper_Type(typeof(Button.ButtonClickedEvent), "Button.ButtonClickedEvent"));
        clsEnv.RegType(new RegHelper_Type(typeof(Camera)));
        clsEnv.RegType(new RegHelper_Type(typeof(Canvas)));
        clsEnv.RegType(new RegHelper_Type(typeof(CanvasGroup)));
        clsEnv.RegType(new RegHelper_Type(typeof(CanvasScaler)));
        clsEnv.RegType(new RegHelper_Type(typeof(Convert)));
        clsEnv.RegType(new RegHelper_Type(typeof(CSLightMng)));
        clsEnv.RegType(new RegHelper_Type(typeof(DateTime)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(DayOfWeek)));
        clsEnv.RegType(new RegHelper_Type(typeof(Encoding)));
        clsEnv.RegType(new RegHelper_Type(typeof(EventTrigger)));
        clsEnv.RegType(new RegHelper_Type(typeof(EventTrigger.Entry), "EventTrigger.Entry"));
        clsEnv.RegType(new RegHelper_Type(typeof(EventTrigger.TriggerEvent), "EventTrigger.TriggerEvent"));
        clsEnv.RegType(new RegHelper_Type(typeof(Font)));
        clsEnv.RegType(new RegHelper_Type(typeof(Hashtable)));
        clsEnv.RegType(new RegHelper_Type(typeof(Image)));
        clsEnv.RegType(new RegHelper_Type(typeof(InputField)));
        clsEnv.RegType(new RegHelper_Type(typeof(Light)));
        clsEnv.RegType(new RegHelper_Type(typeof(MD5CryptoServiceProvider)));
        clsEnv.RegType(new RegHelper_Type(typeof(MemoryStream)));
        clsEnv.RegType(new RegHelper_Type(typeof(NavMeshAgent)));
        clsEnv.RegType(new RegHelper_Type(typeof(NavMeshHit)));
        clsEnv.RegType(new RegHelper_Type(typeof(NavMeshObstacle)));
        clsEnv.RegType(new RegHelper_Type(typeof(NavMeshPath)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(ObstacleAvoidanceType)));
        clsEnv.RegType(new RegHelper_Type(typeof(ParticleSystem)));
        clsEnv.RegType(new RegHelper_Type(typeof(PointerEventData)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(PrimitiveType)));
        clsEnv.RegType(new RegHelper_Type(typeof(QualitySettings)));
        clsEnv.RegType(new RegHelper_Type(typeof(Rect)));
        clsEnv.RegType(new RegHelper_Type(typeof(RectTransform)));
        clsEnv.RegType(new RegHelper_Type(typeof(Resources)));
        clsEnv.RegType(new RegHelper_Type(typeof(Rigidbody)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(RuntimePlatform)));
        clsEnv.RegType(new RegHelper_Type(typeof(Screen)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(SeekOrigin)));
        clsEnv.RegType(new RegHelper_Type(typeof(Slider)));
        clsEnv.RegType(new CLS_Type_Enum(typeof(Space)));
        clsEnv.RegType(new RegHelper_Type(typeof(Sprite)));
        clsEnv.RegType(new RegHelper_Type(typeof(StringBuilder)));
        clsEnv.RegType(new RegHelper_Type(typeof(Text)));
        clsEnv.RegType(new RegHelper_Type(typeof(Toggle)));
        clsEnv.RegType(new RegHelper_Type(typeof(Toggle.ToggleEvent), "Toggle.ToggleEvent"));
        clsEnv.RegType(new RegHelper_Type(typeof(Type)));
        clsEnv.RegType(new RegHelper_DeleAction(typeof(UnityAction), "UnityAction"));
        clsEnv.RegType(new RegHelper_DeleAction<bool>(typeof(UnityAction<bool>), "UnityAction<bool>"));
        clsEnv.RegType(new RegHelper_Type(typeof(UnityEngine.Object), "UnityEngine.Object"));
        clsEnv.RegType(new RegHelper_Type(typeof(Vector4)));
        clsEnv.RegType(new RegHelper_Type(typeof(WWW)));
        clsEnv.RegType(new CLS_Type_Array<Behaviour>("Behaviour[]"));
        clsEnv.RegType(new CLS_Type_List<Behaviour>("List<Behaviour>"));
        clsEnv.RegType(new CLS_Type_Array<BoxCollider>("BoxCollider[]"));
        clsEnv.RegType(new CLS_Type_List<BoxCollider>("List<BoxCollider>"));
        clsEnv.RegType(new CLS_Type_Array<Collider>("Collider[]"));
        clsEnv.RegType(new CLS_Type_List<Collider>("List<Collider>"));
        clsEnv.RegType(new CLS_Type_Array<Color>("Color[]"));
        clsEnv.RegType(new CLS_Type_List<Color>("List<Color>"));
        clsEnv.RegType(new CLS_Type_Array<Component>("Component[]"));
        clsEnv.RegType(new CLS_Type_List<Component>("List<Component>"));
        clsEnv.RegType(new CLS_Type_Array<GameObject>("GameObject[]"));
        clsEnv.RegType(new CLS_Type_List<GameObject>("List<GameObject>"));
        clsEnv.RegType(new CLS_Type_Array<MonoBehaviour>("MonoBehaviour[]"));
        clsEnv.RegType(new CLS_Type_List<MonoBehaviour>("List<MonoBehaviour>"));
        clsEnv.RegType(new CLS_Type_Array<Quaternion>("Quaternion[]"));
        clsEnv.RegType(new CLS_Type_List<Quaternion>("List<Quaternion>"));
        clsEnv.RegType(new CLS_Type_Array<SphereCollider>("SphereCollider[]"));
        clsEnv.RegType(new CLS_Type_List<SphereCollider>("List<SphereCollider>"));
        clsEnv.RegType(new CLS_Type_Array<Transform>("Transform[]"));
        clsEnv.RegType(new CLS_Type_List<Transform>("List<Transform>"));
        clsEnv.RegType(new CLS_Type_Array<Vector2>("Vector2[]"));
        clsEnv.RegType(new CLS_Type_List<Vector2>("List<Vector2>"));
        clsEnv.RegType(new CLS_Type_Array<Vector3>("Vector3[]"));
        clsEnv.RegType(new CLS_Type_List<Vector3>("List<Vector3>"));
        clsEnv.RegType(new CLS_Type_Array<Animator>("Animator[]"));
        clsEnv.RegType(new CLS_Type_List<Animator>("List<Animator>"));
        clsEnv.RegType(new CLS_Type_Array<AnimatorStateInfo>("AnimatorStateInfo[]"));
        clsEnv.RegType(new CLS_Type_List<AnimatorStateInfo>("List<AnimatorStateInfo>"));
        clsEnv.RegType(new CLS_Type_Array<Button>("Button[]"));
        clsEnv.RegType(new CLS_Type_List<Button>("List<Button>"));
        clsEnv.RegType(new CLS_Type_Array<Camera>("Camera[]"));
        clsEnv.RegType(new CLS_Type_List<Camera>("List<Camera>"));
        clsEnv.RegType(new CLS_Type_Array<EventTrigger.Entry>("EventTrigger.Entry[]"));
        clsEnv.RegType(new CLS_Type_List<EventTrigger.Entry>("List<EventTrigger.Entry>"));
        clsEnv.RegType(new CLS_Type_Array<Image>("Image[]"));
        clsEnv.RegType(new CLS_Type_List<Image>("List<Image>"));
        clsEnv.RegType(new CLS_Type_Array<InputField>("InputField[]"));
        clsEnv.RegType(new CLS_Type_List<InputField>("List<InputField>"));
        clsEnv.RegType(new CLS_Type_Array<ParticleSystem>("ParticleSystem[]"));
        clsEnv.RegType(new CLS_Type_List<ParticleSystem>("List<ParticleSystem>"));
        clsEnv.RegType(new CLS_Type_Array<Rect>("Rect[]"));
        clsEnv.RegType(new CLS_Type_List<Rect>("List<Rect>"));
        clsEnv.RegType(new CLS_Type_Array<RectTransform>("RectTransform[]"));
        clsEnv.RegType(new CLS_Type_List<RectTransform>("List<RectTransform>"));
        clsEnv.RegType(new CLS_Type_Array<Slider>("Slider[]"));
        clsEnv.RegType(new CLS_Type_List<Slider>("List<Slider>"));
        clsEnv.RegType(new CLS_Type_Array<Sprite>("Sprite[]"));
        clsEnv.RegType(new CLS_Type_List<Sprite>("List<Sprite>"));
        clsEnv.RegType(new CLS_Type_Array<Text>("Text[]"));
        clsEnv.RegType(new CLS_Type_List<Text>("List<Text>"));
        clsEnv.RegType(new CLS_Type_Array<Toggle>("Toggle[]"));
        clsEnv.RegType(new CLS_Type_List<Toggle>("List<Toggle>"));
        clsEnv.RegType(new CLS_Type_Array<Type>("Type[]"));
        clsEnv.RegType(new CLS_Type_List<Type>("List<Type>"));
        clsEnv.RegType(new CLS_Type_Array<UnityEngine.Object>("UnityEngine.Object[]"));
        clsEnv.RegType(new CLS_Type_List<UnityEngine.Object>("List<UnityEngine.Object>"));
        clsEnv.RegType(new CLS_Type_Array<Vector4>("Vector4[]"));
        clsEnv.RegType(new CLS_Type_List<Vector4>("List<Vector4>"));
        clsEnv.RegType(new CLS_Type_Array<WWW>("WWW[]"));
        clsEnv.RegType(new CLS_Type_List<WWW>("List<WWW>"));
        // gen end

        return clsEnv;
    }
Example #15
0
    // 从资源包初始化脚本环境
    public void InitializeFromAssetBundle(AssetBundle scriptsAssetBundle)
    {
        m_clsAssetBundle = scriptsAssetBundle;

        #if UNITY_EDITOR
        float timeStart = Time.realtimeSinceStartup;
        uint monoStart = Profiler.GetMonoUsedSize();
        #endif

        // 获取默认的脚本实例
        m_clsEnv = ToCSLight.CreateEnvironment();
        m_clsContent = m_clsEnv.CreateContent();

        // 预注册脚本类
        #if UNITY_EDITOR && !EDITOR_FORCE_ASSET_BUNDLE
        string rootPath = Application.dataPath + "/CSLight/Editor/CSLogic";
        string[] files = System.IO.Directory.GetFiles(rootPath, "*.cs", System.IO.SearchOption.AllDirectories);
        foreach (var file in files)
        {
            string className = System.IO.Path.GetFileNameWithoutExtension(file);
            m_clsEnv.RegType(new CLS_Type_Class(className, file.Replace('\\', '/')));
        }
        #else
        StringHolder classHolder = m_clsAssetBundle.LoadAsset("class", typeof(StringHolder)) as StringHolder;
        foreach (string className in classHolder.content)
        {
            m_clsEnv.RegType(new CLS_Type_Class(className, className));
        }
        #endif

        #if UNITY_EDITOR
        Debug.Log("script init cost time: " + (Time.realtimeSinceStartup - timeStart));
        Debug.Log(string.Format("script init cost memory: {0:0.00}MB", (Profiler.GetMonoUsedSize() - monoStart) / (1024f * 1024f)));
        timeStart = Time.realtimeSinceStartup;
        #endif
    }
Example #16
0
 public  void Reset()
 {
     env = null;
     Init();
 }
Example #17
0
 public void BeginExit()
 {
     env    = null;
     exited = true;
 }
Example #18
0
 public void Reset()
 {
     env = null;
     Init();
 }