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");
        }
    }