博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游戏Loading中的小提示和Loading动画实现
阅读量:6036 次
发布时间:2019-06-20

本文共 2928 字,大约阅读时间需要 9 分钟。

学习unity1年多了,工作也1年了,因为工作需要,有几个月没接触unity Ngui啦。

学的还是不踏实。继续努力吧。由于下周就要进行新游戏的开发,这几天熟悉熟悉NGUI,今天按照现在公司以前的项目做了个loading界面。

    内容就是一张背景图,上面会有几个精灵一闪一闪的跳动的显示加载的界面,下面会随机出现小提示文字。需求很简单。但是做了这个简单的功能练习,我还是学会了一点儿基础。

    先说提示文字随机显示吧。

下面是我需要显示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
().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
().text = tips[Random.Range(0, i)]; } yield return new WaitForSeconds(4f); StartCoroutine("RandomTips"); } }

  

这里遇到个问题就是 每隔多少秒显示(刷新)文字的实现。开始想写在Update方法里,可是Update每一帧都执行。我记得可以写在Update里面的,控制一下每隔多少秒执行啊啊,不会啊,以前见过有大神写过,忘记了。哪位大神要是知道教教我吧。

后来花花说用这个方法 InvokeRepeating,查了APi

void InvokeRepeating(string methodName, float time, float repeatRate);这是用法。methodName传的是方法名,开始我传的是RandomTips,不能实现。后来单独写了个显示文字的方法 传的RandomText可以实现。

另外,如果用协程  调用的方法可以是 RandomTips,递归调用,实现每隔m秒执行某种行为等。

以上就是实现提示文字的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.

转载于:https://www.cnblogs.com/JavaV1/p/3903517.html

你可能感兴趣的文章
HashMap的工作原理及HashMap和Hashtable的区别
查看>>
GregorianCalendar日历程序
查看>>
Sublime 中运行 Shell 、Python、Lua、Groovy...等各种脚本
查看>>
【Java集合源码剖析】ArrayList源码剖析
查看>>
linux基础概念和个人笔记总结(6)
查看>>
RHEL 6 简易搭建samba服务 RHCE
查看>>
一图胜千言 -- SQL Server 基准测试
查看>>
微小说精选
查看>>
我的友情链接
查看>>
主板典型故障解决方法
查看>>
Hadoop集群搭建步骤
查看>>
更改ubuntu的系统语言
查看>>
jvm参数详解,内存泄露解决
查看>>
升级Windows Management Framework对事件转发的影响
查看>>
我的友情链接
查看>>
mysql报错问题解决Character set 'utf8mb4' is not a compil
查看>>
在CentOS6.8下安装Docker
查看>>
VC++播放音频文件和音频数据的方法
查看>>
1.4T的mysql表删除
查看>>
超前引用
查看>>