在Unity官网上有相关OnGUI函数的讲解,点击查看官网说明文档
将这段代码贴在Unity的脚本中并且拖拽到主摄像机上,便会发现运行时左上角多了一个小按钮:
但是这样显然不能满足正常的需求,
一般来说游戏需要在界面显示当前角色的相关信息,比如剩余血量什么的,下面就来看下如何在Unity中使用OnGUI函数显示Health信息。
将在MonoDevelopment中将代码做如下修改:
运行以下程序,可以看到一个逐渐减少的Health值的动态显示:
这样就可以简单的将数据显示在屏幕上了,具体的相关操作请看说明文档:
接下来就是使用触发器来修改玩家的Health信息了。具体需求如下:当玩家进入火焰的区域时Health值减少。
实现过程非常简单,关键步骤是如下代码:
var health:float = 180; // player's health var damageRate:float = 36; // how fast the player loses health var startHealth:float; // container for the starting health function Awake () { startHealth = health; } function Update () { if (health < 0) { Reset(); } if (this.transform.position.y < 0) { // falling through level Reset(); } } function OnGUI () { GUI.Box (Rect (100,100,150,30), "Player Health: " + Mathf.Round(health)); } function Reset () { //this reset health and position transform.position = Vector3(27.44, 12.62892, 281.0809); health = startHealth; } function OnTriggerStay (theCollider : Collider) { if (theCollider.tag == "fire") { //damage if in fire health -= damageRate * Time.deltaTime; } }