游戏Loading中的小提示和Loading动画实现
学习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<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里面的,控制一下每隔多少秒执行啊啊,不会啊,以前见过有大神写过,忘记了。哪位大神要是知道教教我吧。
后来花花说用这个方法 InvokeRepeating,查了APi
http://docs.unity3d.com/ScriptReference/MonoBehaviour.InvokeRepeating.html
void InvokeRepeating(string methodName, float time, float repeatRate);这是用法。methodName传的是方法名,开始我传的是RandomTips,不能实现。后来单独写了个显示文字的方法 传的RandomText可以实现。
另外,如果用协程 http://docs.unity3d.com/ScriptReference/Coroutine.html 调用的方法可以是 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.
游戏Loading中的小提示和Loading动画实现的更多相关文章
- Swift类型推测在可选调用中的小提示
我们知道Swift中协议里也有对应于Objc中的可选方法或计算属性,当然协议必须以@objc伪指令修饰否则不可以哦. 如下示例: @objc protocol Transaction{ fun com ...
- 利用@keyframe及animation做一个页面Loading时的小动画
前言 利用@keyframe规则和animation常用属性做一个页面Loading时的小动画. 1 @keyframe规则简介 @keyframes定义关键帧,即动画每一帧执行什么. 要使用关键帧 ...
- 【转】Android中通知的提示音、震动和LED灯效果小例子
通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方 ...
- 完美解决iis下JWplayer提示Error loading media: File could not be played错误
最近开发项目需要使用JWplayer插件播放视频,但是无论换那个版本.换什么样的视频总是提示Error loading media: File could not be played错误,废了好大的劲 ...
- 小技巧:SystemTray中进行操作提示
SystemTray中进行操作提示在wp中应用比较广泛,截图如下. 实现方法也十分简单 1.xaml代码中写入: shell:SystemTray.IsVisible="True" ...
- 算法、数据结构、与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design)
算法.数据结构.与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design) 作者: Compasslg 李涵威 1. 什么是单例设计(Singleton Design) 在学 ...
- Entity Framework加载相关实体——延迟加载Lazy Loading、贪婪加载Eager Loading、显示加载Explicit Loading
Entity Framework提供了三种加载相关实体的方法:Lazy Loading,Eager Loading和Explicit Loading.首先我们先来看一下MSDN对三种加载实体方法的定义 ...
- 【Unity游戏开发】浅谈Unity游戏开发中的单元测试
一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试 ...
- Go 在游戏行业中的工程实践
在今年 1 月由七牛云主办的 ECUG Con 十周年盛会上,真有趣技术总监陈明达带来了题为< Go 在游戏行业中的工程实践>的精彩分享,深入讲解了 Go 的工程经验,错误和异常处理,in ...
随机推荐
- (转)Android 系统属性SystemProperty分析
一 System Property 代码中大量存在:SystemProperties.set()/SystemProperties.get():通过这两个接口可以对系统的属性进行读取/设置, 顾名思义 ...
- c程序中出现segment error 和 bus error 的原因
在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...
- 为什么重写equals时必须重写hashCode方法?
原文地址:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452206.html 首先我们先来看下String类的源码:可以发现Stri ...
- [题解]vijos & codevs 能量项链
a { text-decoration: none; font-family: "comic sans ms" } .math { color: gray; font-family ...
- jqueryValidation使用
jq form表单前端校验可以使用jq插件jquery-validation.js.具体的使用方法: 1.引入文件: <link rel="stylesheet" href= ...
- 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)
首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...
- Django模板系统——过滤器
转自:https://www.douban.com/note/145065606/ <省得每次都得去翻麻烦> 过滤器,变量的显示形式的改变一.形式:小写{{ name | lower } ...
- 第一章 jQuery基础方法回顾
jQuery即JavaScript,它是一个.js文件(官网下载).使用时须将jQuery库的声明写在HTML文档的head标签里. 章节内容: 1.选择DOM节点 2.延迟的JavaScript的执 ...
- 在CMMI推广过程中EPG常犯的错误(转)
本文转自: http://developer.51cto.com/art/200807/86953.htm 仅用于个人收藏,学习.如有转载,请联系原作者. ---------------------- ...
- WINDOWS下绑定ARP绑定网关
一.WINDOWS下绑定ARP绑定网关步骤一:在能正常上网时,进入MS-DOS窗口,输入命令:arp -a,查看网关的IP对应的正确MAC地址, 并将其记录下来.注意:如果已经不能上网,则先运行一次命 ...