unity学习,希望我的博客能给喜欢unity的朋友带来帮助
今天有同学过生日,所以我们上午没有讲课,十点出发去吃了自助,下午的时候也让我们自由活动放松了,晚饭后我来了教室,学习了一下怎么设置进度条,想想这一天也不是全无收获啊。
首先进度条用到的是
GUI
的内容,首先在类外面创建一个空的文本纹理,因为是进度条,是由两个空的文本纹理,然后定义一个当前的进度,再接着定义一个
GUI
的方法,在方法里面绘制两个文本域,说白了就是画两个长方形,然后还得定义一个绘制长条的宽度,所谓的宽度就是让当前走的进度乘以放在上面的空的文本纹理的宽度,这样就形成了一个进度条。
代码如下:
- //定义一个蓝血条2D文本纹理
- public Texture2D blood_blue;
- //定义一个黑色血条2D文本纹理
- public Texture2D blood_black;
- //当前进度
- public float HP=0f;
- void Update () {
- if (HP <=100)
- {
- //这是根据时间增加进度
- HP += Time.deltaTime*5;
- }
- //如果当前进度大于等于100,则进行跳转
- else if(HP>=100)
- {
- //跳转
- Application.LoadLevel("login");
- }
- void OnGUI()
- {
- string dd = " ";
- GUIStyle cc = new GUIStyle();
- //设置背景图片
- cc.normal.background = img;
- GUI.Label(new Rect(0, 0, 1350, 600), dd, cc);
- if (HP<=100)
- {
- //这是定义血的进度
- float blood_width = blood_blue.width * HP/100;
- GUI.DrawTexture(new Rect(100, 510, blood_black.width,
- //画进度条
- blood_black.height), blood_black);
- GUI.DrawTexture(new Rect(100, 510, blood_width, blood_blue.height), blood_blue);
- //设置字体
- GUI.skin.label.fontSize = 30;
- //设置颜色
- GUI.color = Color.black;
- GUI.Label(new Rect(1128, 510, 200, 50), (int )HP+ "%");
- GUI.skin.label.fontSize = 13;
- GUI.color = Color.red;
- GUI.Label(new Rect(530,560,200,50),"正在加载.....请稍后.....");
- }
- }
更多精彩请关注:
http://unity.gopedu.com/