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