学习笔记:Unity战斗卡牌游戏(三)-----代码加载预设 及 Tween动画使用及播放回掉
动态加载弹出框:
1. 将弹出框存在Resources目录下,成为一个预设
2. 用Resouces.Load来加载
GameObject obj = Resources.Load<GameObject>("Prefab/PanelMail") as GameObject;
3. 设置资源的父物体,注意用其克隆体来操作
GameObject panelMail = Instantiate(LoadMailResource(path)) as GameObject; panelMail.transform.parent = GameObject.Find("UI Root").transform; panelMail.transform.localEulerAngles = Vector3.zero; // 不旋转 panelMail.transform.localScale = Vector3.one; // 不形变 panelMail.transform.localPosition = Vector3.zero; // 不改变位置
4. 加入挡板,防止生成多个弹出框
params 关键字:
public void InitData(params object[] paramsArr){}
表示调用InitData时可以传任意多个参数。
动态加载脚本:
PanelMail pm = obj.AddComponent<PanelMail>();
pm.InitData(index);
tween动画:
1. 加入TweenScale脚本
2. 得到脚本对象并播放动画
if (click.name.Equals("BtnClose") || click.name.Equals("BtnRemove")) { TweenScale ts = gameObject.GetComponent<TweenScale>(); ts.onFinished.Add(new EventDelegate(PlayReturn)); // 添加播放完的回调函数 ts.Play(false); // false表示反向播放 }
void PlayReturn() { Destroy(gameObject); }