学习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动画实现的更多相关文章

  1. Swift类型推测在可选调用中的小提示

    我们知道Swift中协议里也有对应于Objc中的可选方法或计算属性,当然协议必须以@objc伪指令修饰否则不可以哦. 如下示例: @objc protocol Transaction{ fun com ...

  2. 利用@keyframe及animation做一个页面Loading时的小动画

    前言 利用@keyframe规则和animation常用属性做一个页面Loading时的小动画. 1  @keyframe规则简介 @keyframes定义关键帧,即动画每一帧执行什么. 要使用关键帧 ...

  3. 【转】Android中通知的提示音、震动和LED灯效果小例子

    通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方 ...

  4. 完美解决iis下JWplayer提示Error loading media: File could not be played错误

    最近开发项目需要使用JWplayer插件播放视频,但是无论换那个版本.换什么样的视频总是提示Error loading media: File could not be played错误,废了好大的劲 ...

  5. 小技巧:SystemTray中进行操作提示

    SystemTray中进行操作提示在wp中应用比较广泛,截图如下. 实现方法也十分简单 1.xaml代码中写入: shell:SystemTray.IsVisible="True" ...

  6. 算法、数据结构、与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design)

    算法.数据结构.与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design) 作者: Compasslg 李涵威 1. 什么是单例设计(Singleton Design) 在学 ...

  7. Entity Framework加载相关实体——延迟加载Lazy Loading、贪婪加载Eager Loading、显示加载Explicit Loading

    Entity Framework提供了三种加载相关实体的方法:Lazy Loading,Eager Loading和Explicit Loading.首先我们先来看一下MSDN对三种加载实体方法的定义 ...

  8. 【Unity游戏开发】浅谈Unity游戏开发中的单元测试

    一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试 ...

  9. Go 在游戏行业中的工程实践

    在今年 1 月由七牛云主办的 ECUG Con 十周年盛会上,真有趣技术总监陈明达带来了题为< Go 在游戏行业中的工程实践>的精彩分享,深入讲解了 Go 的工程经验,错误和异常处理,in ...

随机推荐

  1. [2015hdu多校联赛补题]hdu5384 Danganronpa

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384 题意:函数f(A, B)定义:A.B为字符串,f(A, B)为A中有多少个不同的B(ex:f(& ...

  2. FusionCharts制作报表使用XML导入数据时出现的中文乱码问题

    今天在使用FusionCharts制作报表时用XML导入数据,总是出现乱码问题,下面是我的解决方案. 让FusionCharts支持中文 刚刚将XML导入到html中后,在火狐浏览器一直报Invali ...

  3. 转载 --ios 模型-setValuesForKeysWithDictionary

    应用场景:app请求后端数据,返回的数据是JSON形式,如: { "is_favor" = 0; "is_follow" = 0; "is_prais ...

  4. Eclipse创建Maven时提示错误could not resolve archetype

    今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured ...

  5. 1 Two Sum

    // Java public int[] twoSum(int[] nums, int target) { int[] answer = new int[2]; for (int i = 0; i & ...

  6. android:ems的作用

    android:ems用来设置EditText或TextView显示的字符宽度. 比如:android:ems="10" 设置TextView或EditText为10个字符的宽度, ...

  7. 用Navicat_SSH 连接数据库服务器

    SSH设置(只限于Mysql.oracle.PostgreSQL及 SQL Server 并只支持 SSH2通讯协定) Secure SHell(SSH)是一个通过网络登录其他计算机的程序,在远程服务 ...

  8. 用TypeScript开发爬虫程序

    全局安装typescript: npm install -g typescript 目前版本2.0.3,这个版本不再需要使用typings命令了.但是vscode捆绑的版本是1.8的,需要一些配置工作 ...

  9. tomcat(三)--基本安装配置

    0x01  JDK和Tomcat安装 到oracle官网下载jdk,当前下载的版本是Linux x64 jdk-8u101-linux-x64.tar.gz 到apache官网下载tomcat,当前最 ...

  10. VBA使用的Randomize和DoEvents

    Randomize private function getInt() dim n,m as integer Randomize n=1 m=3 getInt=Int((m+1-n)*rnd + n) ...