Ejemplo n.º 1
0
 private void Reset()
 {
     init                   = true;
     configPath             = Application.dataPath + "/Resources/BundleConfig";
     configFilePath         = Application.dataPath + "/Resources/BundleConfig/config.bytes";
     bundleRecordFile       = Application.dataPath + "/Resources/BundleConfig/bundleRecord.bytes";
     eventTriggerConfigPath = Application.dataPath + "/Resources/BundleConfig/eventTriggerConfig.json";
     if (File.Exists(configFilePath))
     {
         sr = new StreamReader(new FileStream(configFilePath, FileMode.Open));
         unityInstallPath = sr.ReadLine();
         scriptPath       = sr.ReadLine();
         savePath         = sr.ReadLine();
         sr.Close();
     }
     tips                      += "选择Unity安装路径(Editor文件夹的上级目录)\n";
     tips                      += "选择打包脚本文件夹\n";
     tips                      += "选择Bundle保存文件夹\n";
     tips                      += "选择打包Prefab\n";
     tips                      += "选择打包对应平台\n";
     tips                      += "点击打包检查\n";
     inspectIndex               = 1;
     androidBuild               = true;
     pcBuild                    = true;
     withoutColldider           = false;
     canBuildt                  = false;
     hasMono                    = false;
     hasBundleTrigger           = false;
     allTriggerToDesingerConfig = new AllTriggerToDesingerJson();
     isCreateJson               = false;
 }
        private void LoadJsonForTrigger(AssetBundle content, Transform root)
        {
            TextAsset aa = content.LoadAsset <TextAsset>("eventTriggerConfig");
            AllTriggerToDesingerJson p = JsonConvert.DeserializeObject <AllTriggerToDesingerJson>(aa.text);

            for (int i = 0; i < p.allJson.Count; i++)
            {
                string triggerName = p.allJson[i].objName;
                List <BundleEventTriggerInfo> bundleEventTriggerInfos = new List <BundleEventTriggerInfo>();
                BundleEventTriggerInfo        temp = new BundleEventTriggerInfo();
                triggerInfoCache.Add(triggerName, bundleEventTriggerInfos);
                List <BundleEventTriggerJson> bundleEventTriggerJsons = p.allJson[i].bundleEventTriggerDesigners.bundleEventTriggerJsons;
                for (int j = 0; j < bundleEventTriggerJsons.Count; j++)
                {
                    GameObject             target;
                    UnityEngine.Object     method;
                    BundleEventTriggerType triggerType;
                    target = GameObject.Find(bundleEventTriggerJsons[j].target).gameObject;
                    //method = dll.GetType(bundleEventTriggerJsons[j].method);
                    //需要构建一个用名称改成的mehtod以供Trigger判断
                    //未完待续



                    MonoBehaviour[] mb = target.GetComponents <MonoBehaviour>();
                    temp.target      = target;
                    temp.method      = target;
                    temp.triggerType = (BundleEventTriggerType)bundleEventTriggerJsons[j].triggerType;
                    bundleEventTriggerInfos.Add(temp);
                }
                triggerInfoCache[triggerName] = bundleEventTriggerInfos;
            }
        }
Ejemplo n.º 3
0
        public void LoadJsonForTrigger(AssetBundle content)
        {
            TextAsset aa = content.LoadAsset <TextAsset>("eventTriggerConfig");

            triggerDesingerJsonInfos = JsonConvert.DeserializeObject <AllTriggerToDesingerJson>(aa.text);
            TextAsset asset = content.LoadAsset <TextAsset>("output");

            dll = System.Reflection.Assembly.Load(asset.bytes);
            for (int i = 0; i < triggerDesingerJsonInfos.allJson.Count; i++)
            {
                string triggerName = triggerDesingerJsonInfos.allJson[i].objName;
                List <BundleEventTriggerInfo> bundleEventTriggerInfos = new List <BundleEventTriggerInfo>();
                GameObject                    target;
                UnityEngine.Object            method;
                BundleEventTriggerType        triggerType;
                List <BundleEventTriggerJson> bundleEventTriggerJsons = triggerDesingerJsonInfos.allJson[i].bundleEventTriggerDesigners.bundleEventTriggerJsons;
                for (int j = 0; j < bundleEventTriggerJsons.Count; j++)
                {
                    target = GameObject.Find(bundleEventTriggerJsons[j].target).gameObject;
                    Type      componentType = dll.GetType(bundleEventTriggerJsons[j].method);
                    Component mb            = target.GetComponent(componentType);
                    method      = mb;
                    triggerType = (BundleEventTriggerType)bundleEventTriggerJsons[j].triggerType;
                    bundleEventTriggerInfos.Add(new BundleEventTriggerInfo(target, method, triggerType));
                }
                triggerInfoCache.Add(triggerName, bundleEventTriggerInfos);
            }
        }
Ejemplo n.º 4
0
        private void Reset()
        {
            resourcesPath          = Application.dataPath + "/ZTools/AssetBundleBuildInDLL/Resources/BundleConfig";
            bundleConfig           = resourcesPath + "/bundleRecord.bytes";
            configFilePath         = resourcesPath + "/config.bytes";
            eventTriggerConfigPath = resourcesPath + "/eventTriggerConfig.json";

            dllConfig = resourcesPath + "/output.bytes";

            if (File.Exists(configFilePath))
            {
                sr = new StreamReader(new FileStream(configFilePath, FileMode.Open));
                unityInstallPath = sr.ReadLine();
                scriptsPath      = sr.ReadLine();
                outputPath       = sr.ReadLine();
                sr.Close();
            }
            tips += "选择Unity安装路径(Editor文件夹的上级目录)\n";
            tips += "选择打包脚本文件夹\n";
            tips += "选择Bundle保存文件夹\n";
            tips += "选择打包Prefab\n";
            tips += "选择打包对应平台\n";
            tips += "点击打包检查\n";

            tempPath                   = "";
            platform                   = BuildTarget.StandaloneWindows64;
            inspectIndex               = 1;
            canBuildt                  = false;
            hasMono                    = false;
            hasBundleTrigger           = false;
            allTriggerToDesingerConfig = new AllTriggerToDesingerJson();
            changed                    = false;
        }
Ejemplo n.º 5
0
        private void CreateEventTriggerInfoJsonConfig(string dirPath)
        {
            //覆盖生成
            swEventConfig = new StreamWriter(new FileStream(dirPath, FileMode.Create));
            DataContractJsonSerializer dc    = new DataContractJsonSerializer(typeof(AllTriggerToDesingerJson));
            AllTriggerToDesingerJson   attdc = new AllTriggerToDesingerJson();

            attdc = allTriggerToDesingerConfig;
            MemoryStream ms = new MemoryStream();

            dc.WriteObject(ms, attdc);
            byte[] dataBytes = new byte[ms.Length];
            ms.Position = 0;
            ms.Read(dataBytes, 0, (int)ms.Length);
            swEventConfig.WriteLine(Encoding.UTF8.GetString(dataBytes));
            swEventConfig.Flush();
            swEventConfig.Close();
        }