Unity学习之GUI基础
来源:互联网 发布:李华清经济学考研知乎 编辑:程序博客网 时间:2024/05/17 11:36
unity学习,希望我的博客能给喜欢unity的朋友带来帮助
今天学习了新的内容:GUI。
GUI控制利用一类被称为OnGUI()的函数,只要在控制脚本激活的状态下,OnGUI函数可以在每帧调用,就像Update()函数一样。
GUI可以在unity界面中添加文本和按钮等。
下面用GUI来完善一下做过的飞机大战游戏,可以让它在游戏界面中显示我方飞机的生命值和得分。
完成如图的效果:
代码如下:
- using UnityEngine;
- using System.Collections;
- public class GUIText : MonoBehaviour {
- public int lifeTime = 0;//我方生命值
- public int score = 0;//得分
- public static GUIText instance;//管理对象初始化,自身定为静态变量
- public Player player;//获取我方飞机
- void Start()
- {
- instance = this;
- player = GameObject.FindGameObjectWithTag("Player").GetComponent<Player>();
- }
- void OnGUI()
- {
- lifeTime = player.i;
- GUI.Label(new Rect(20, 30, 100, 20), "生命值为:" + lifeTime);
- GUI.Label(new Rect(20, 70, 100, 20), "分数:" + score);
- }
- }
然后再我方飞机和敌方飞机的脚本中调用:
//敌方飞机中的调用
- void OnTriggerEnter(Collider col)
- {
- if (col.tag == "Myrocket")
- {
- i--;
- print(i);
- if (i <= 0)
- {
- GUIText.instance.score++;//调用
- Destroy(this.gameObject);
- }
- }
- }
//我方飞机中的调用
- void OnTriggerEnter(Collider col)
- {
- if (col.tag == "EnemyRocket")
- {
- i--;
- GUIText.instance.lifeTime = i;//调用
- print(i);
- if (i <= 0)
- {
- Destroy(this.gameObject);
- }
- }
- }
飞机大战中,敌方飞机不可能只有一架,还会出现跟多的飞机,下面我们就来实现敌方飞机一波一波的出现,其中用到了数组和协程的知识点。
完成如图效果:
在敌方飞机中添加代码,代码如下:
- using UnityEngine;
- using System.Collections;
- public class Enemy : MonoBehaviour {
- //1、对象数组 2、协程
- public GameObject[] enemy;//声明对象数组
- int number = 5;
- void Start () {
- StartCoroutine("Spawn");
- // StartCoroutine(Spawn());//也可以,两种写法
- }
- void Update () {
-
- }
- IEnumerator Spawn() {
- yield return new WaitForSeconds(1f);//开始等待5秒
- while (true)
- {
- while (number > 0)
- {
- GameObject go = enemy[Random.Range(0, enemy.Length)];
- Vector3 pos = new Vector3(Random.Range(-4, 4), -10.98809f, -14.5748f);
- GameObject.Instantiate(go, pos, transform.rotation);
- yield return new WaitForSeconds(2f);//每隔两秒克隆1个
- number--;
- }
- number = 5;
- yield return new WaitForSeconds(4f);//每隔4秒开始下一波
- }
- }
- }
这个代码中我们定义的是对象数组,所以在属性中不要忘了下一步:
更多精彩请点击 http://www.gopedu.com/article
0 0
- Unity学习之GUI基础
- unity学习之GUI基础2
- unity之GUI基础
- Unity之GUI基础
- unity之GUI基础
- Unity学习之GUI
- Unity学习之GUI
- unity学习之GUI
- unity之GUI基础(二)
- unity学习之GUI登陆界面
- Unity学习之GUI常用函数
- 学习Unity3D之GUI基础。
- 01.Unity GUI基础
- C#编写Unity基础GUI之按钮控件
- Unity之GUI复习
- unity学习之数据库基础
- unity学习之NGUI基础
- 黑马程序员 Java基础学习之GUI
- 经典问题-生产者和消费者问题
- Bootstrap 文件上传插件Filestyle的用法
- [leetcode 94] Binary Tree Inorder Traversal
- 1028. 人口普查(20)
- 如何查看mac笔记本是64位还是32为
- Unity学习之GUI基础
- 数据结构第五章 树和二叉树 知识导图
- VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
- OpenCV学习:如何扫描图像、利用查找表和计时
- 实习周记III
- 第七章 知识结构导图
- mysql字符乱码详解
- tinyxml的使用以及示例
- 黑马程序员,Java基础知识三:面向对象