105 lines
3.7 KiB
C#
105 lines
3.7 KiB
C#
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());
|
|
}
|
|
}
|