学习unity1年多了,工做也1年了,由于工做须要,有几个月没接触unity Ngui啦。html
学的仍是不踏实。继续努力吧。因为下周就要进行新游戏的开发,这几天熟悉熟悉NGUI,今天按照如今公司之前的项目作了个loading界面。app
内容就是一张背景图,上面会有几个精灵一闪一闪的跳动的显示加载的界面,下面会随机出现小提示文字。需求很简单。可是作了这个简单的功能练习,我仍是学会了一点儿基础。dom
先说提示文字随机显示吧。
学习
下面是我须要显示label文字的脚本LoadingTips.cs动画
using UnityEngine; using System.Collections; public class LoadingTips : MonoBehaviour { string[] tips = new string[] { "小常识:作任务能够得到更多得经验噢!", "天天登录有奖励哦!","能够和好友一块儿玩,看看谁的分数更高!","happay everyday!!"}; GameObject tip; void Start () { tip = transform.gameObject; //StartCoroutine("RandomTips"); InvokeRepeating("RandomText", 2, 3.0F); } void RandomText() { for (int i = 0; i < tips.Length + 1; i++) { tip.GetComponent<UILabel>().text = tips[Random.Range(0, i)]; } } IEnumerator RandomTips() { for (int i = 0; i < tips.Length + 1; i++) { Debug.Log(Random.Range(0, i)); tip.GetComponent<UILabel>().text = tips[Random.Range(0, i)]; } yield return new WaitForSeconds(4f); StartCoroutine("RandomTips"); } }
这里遇到个问题就是 每隔多少秒显示(刷新)文字的实现。开始想写在Update方法里,但是Update每一帧都执行。我记得能够写在Update里面的,控制一下每隔多少秒执行啊啊,不会啊,之前见过有大神写过,忘记了。哪位大神要是知道教教我吧。ui
后来花花说用这个方法 InvokeRepeating,查了APi3d
http://docs.unity3d.com/ScriptReference/MonoBehaviour.InvokeRepeating.htmlorm
void InvokeRepeating(string methodName, float time, float repeatRate);这是用法。methodName传的是方法名,开始我传的是RandomTips,不能实现。后来单独写了个显示文字的方法 传的RandomText能够实现。协程
另外,若是用协程 http://docs.unity3d.com/ScriptReference/Coroutine.html 调用的方法能够是 RandomTips,递归调用,实现每隔m秒执行某种行为等。htm
以上就是实现提示文字的Script,很简单有没有。
而后是一跳一跳的加载进度的实现。也是一个脚本LoadingController.cs
using UnityEngine; using System.Collections; public class LoadingController : MonoBehaviour { public Animator[] animators; void Start() { StartCoroutine("PlayLoading"); } IEnumerator PlayLoading() { animators[0].enabled = true; animators[3].enabled = true; yield return new WaitForSeconds(0.7f); animators[1].enabled = true; animators[4].enabled = true; yield return new WaitForSeconds(0.7f); animators[2].enabled = true; animators[5].enabled = true; } }
又是协程,协程很好用有没有。这个动画的实现也遇到了问题。哎,发现个人问题永远是那么多。
像这样每一个item是个精灵的根节点。以前我是直接把精灵放到PanelLoading下面 可是后来发现 在精灵上加个Animator组件 跳动的位置不是我想要的位置。后来想必定在每一个让之跳动的精灵上加个gameobject控制位置哈。
加动画的时候我又遇到了个问题,就是Loading有2个,后来查了一下1叫Loading.controller ,2叫Loading.anim
我不会作这个2, 1,2都是能够经过在Project视图下去建立的,先建立个Animator Controller ,在里面增长状态机,建立个状态,而后把你的2赋给这个状态的Motion。而后把你的控制器赋给你的Animator 就能按照你的动画去运行了。
关于Animator这方面 笔者还要进一步的研究。
基本的Loading场景UI作好了!!啊啊啊,工做一年了,学了1年了unity NGUI 怎么仍是不进步,感受好多多基础都不会。
学技术不能气馁,我要加油。努力。在之前的公司感受给我个界面我都能作。之前的是大游戏 rpg 和卡牌类型。
如今的是小游戏,三消类的。我看了目前公司的游戏 ,感受很迷茫。如今还没开始项目,下周一开始。我先恶补一下基础。啊啊啊,这几天除了以前的游戏 就是看C#图解。一半还没看完,确实学到不少,也记了笔记。
在此,我生命的转折点,重要时期,感谢个人好友@花花@Kotoba@叶子哥哥 ,还有不少小伙伴,真心的帮助我。我会愈来愈努力的。永不言弃!小贝是最棒的!!嘎嘎。。。。
以上仅此做为个人学习笔记,记录个人失误 学到的,也有监督个人做用,若是在犯一样的错误 ,给花花买冰棍去......
加油吧 ,我,悲惨的小贝仔,我之后是要成为大富婆的人,不能放弃。Aspire to inspire until I expire.