using UnityEngine; using System.Collections; using GCGame.Table; using UnityEngine.UI; public class AdvanceAnimation : MonoBehaviour { public Text modelNameText; public Text stageText; private const string effectName = "effect"; public void ShowAnimation(int baseId) { Tab_AdvanceBase advanceBase = TableManager.GetAdvanceBaseByID(baseId, 0); if (advanceBase == null) { return; } Tab_BundlePath bundlePath = TableManager.GetBundlePathByID(advanceBase.ModelId, 0); if (bundlePath == null) { return; } string []pos = bundlePath.Pos.Split(';'); Vector3 landPos = new Vector3(float.Parse(pos[0]), float.Parse(pos[1]), float.Parse(pos[2])); LoadAssetBundle.Instance.LoadGameObject(LoadAssetBundle.BUNDLE_PATH_EFFECT, bundlePath.Name, delegate (string assetName, GameObject resObj, Hashtable hashParam) { if (resObj != null) { var ani = Instantiate(resObj); ani.gameObject.name = effectName; //寻找父节点下是否有effect Transform oldObj = this.transform.Find(effectName); if (oldObj == null) { ani.transform.SetParent(this.transform); ani.transform.localPosition = landPos; ani.transform.localScale = Vector3.one * bundlePath.Scale; ani.transform.localRotation = Quaternion.Euler(Vector3.zero); } else { ani.transform.SetParent(oldObj.parent); ani.transform.localPosition = landPos; ani.transform.localScale = Vector3.one * bundlePath.Scale; ani.transform.localRotation = oldObj.localRotation; GameObject.Destroy(oldObj.gameObject); } } }, new Hashtable()); modelNameText.text = advanceBase.Name; stageText.text = GCGame.Utils.GetGradeString(advanceBase.Grade); } // 直接通过BundelPath中的ID读取资源 public void ShowAnimationByModelID(int modelId) { Tab_BundlePath bundlePath = TableManager.GetBundlePathByID(modelId, 0); if (bundlePath == null) { return; } string[] pos = bundlePath.Pos.Split(';'); Vector3 landPos = new Vector3(float.Parse(pos[0]), float.Parse(pos[1]), float.Parse(pos[2])); LoadAssetBundle.Instance.LoadGameObject(LoadAssetBundle.BUNDLE_PATH_EFFECT, bundlePath.Name, delegate (string assetName, GameObject resObj, Hashtable hashParam) { if (resObj != null) { var ani = Instantiate(resObj); ani.gameObject.name = effectName; // 寻找字节下是否有effect var oldObj = transform.Find(effectName); if (oldObj == null) { ani.transform.SetParent(this.transform); ani.transform.localPosition = landPos; ani.transform.localScale = Vector3.one * bundlePath.Scale; ani.transform.localRotation = Quaternion.Euler(Vector3.zero); } else { ani.transform.SetParent(oldObj.parent); ani.transform.localPosition = landPos; ani.transform.localScale = Vector3.one * bundlePath.Scale; ani.transform.localRotation = oldObj.localRotation; GameObject.Destroy(oldObj.gameObject); } } }, new Hashtable()); } }