[Unity3D]使用OnGUI函数显示状态栏并且使用触发器修改玩家当前信息

来源:互联网 发布:python运行 编辑:程序博客网 时间:2024/05/22 15:16

在Unity官网上有相关OnGUI函数的讲解,点击查看官网说明文档


将这段代码贴在Unity的脚本中并且拖拽到主摄像机上,便会发现运行时左上角多了一个小按钮:

但是这样显然不能满足正常的需求,
一般来说游戏需要在界面显示当前角色的相关信息,比如剩余血量什么的,下面就来看下如何在Unity中使用OnGUI函数显示Health信息。

将在MonoDevelopment中将代码做如下修改:


运行以下程序,可以看到一个逐渐减少的Health值的动态显示:

这样就可以简单的将数据显示在屏幕上了,具体的相关操作请看说明文档:

查看文档

接下来就是使用触发器来修改玩家的Health信息了。具体需求如下:当玩家进入火焰的区域时Health值减少。

实现过程非常简单,关键步骤是如下代码:

var health:float = 180; // player's healthvar damageRate:float = 36; // how fast the player loses healthvar startHealth:float; // container for the starting healthfunction Awake () {startHealth = health;}function Update () {if (health < 0) {Reset();}if (this.transform.position.y < 0) { // falling through levelReset();}}function OnGUI () {GUI.Box (Rect (100,100,150,30), "Player Health: " + Mathf.Round(health));}function Reset () { //this reset health and positiontransform.position = Vector3(27.44, 12.62892, 281.0809);health = startHealth;}function OnTriggerStay (theCollider : Collider) {if (theCollider.tag == "fire") { //damage if in firehealth -= damageRate * Time.deltaTime;}}