首页 > 其他 > 详细

简单3d RPG游戏 之 002 生命条(二)

时间:2014-03-28 14:27:27      阅读:398      评论:0      收藏:0      [点我收藏+]

在游戏中,游戏人物的血条可能会因为受伤或吃血瓶而长度变化,所以需要将血条的长度单独提出来作为一个变量,方便直接修改数值。

public float healthBarLength;

改变生命值函数如下:

bubuko.com,布布扣
void AddjustCurrentHealth(int adj){
        curHealth += adj;
        if (curHealth < 0) {
            curHealth = 0;
        } else if (curHealth > maxHealth) {
            curHealth = maxHealth;            
        }

        if(maxHealth < 1){
            maxHealth = 1;
        }
        healthBarLength = (Screen.width / 2 * (curHealth / maxHealth));
    }
bubuko.com,布布扣

在Update中调用

    void Update () {
        AddjustCurrentHealth (0);
    }

 

bubuko.com,布布扣

bubuko.com,布布扣

运行后查看效果,当修改CurHealth的值为-1的时候,它自动变为0。

但是当修改CurHealth为50的时候,发现血条长度始终为0,后来发现原来curHealth / maxHealth由于都是整数,所以结果是零,应该在maxHealth前面加float。

healthBarLength = (Screen.width / 2 * (curHealth / (float)maxHealth));

这样运行再修改CurHealth值,对应的长度就正确了。
完整PlayerHealth.cs

 

bubuko.com,布布扣
public class PlayerHealth : MonoBehaviour {
    public int maxHealth = 100;
    public int curHealth = 100;
    public float healthBarLength;
    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        AddjustCurrentHealth (0);
    }

    void OnGUI(){
        GUI.Box (new Rect(10,10,healthBarLength,20),curHealth + "/" + maxHealth);
    }

    void AddjustCurrentHealth(int adj){
        curHealth += adj;
        if (curHealth < 0) {
            curHealth = 0;
        } else if (curHealth > maxHealth) {
            curHealth = maxHealth;            
        }

        if(maxHealth < 1){
            maxHealth = 1;
        }

        healthBarLength = (Screen.width / 2 * (curHealth / (float)maxHealth));
    }
}
View Code

 

下面创建敌人的血条脚本:

在Unity编辑器的Assets/Scripts文件夹内,选中PlayerHealth,按键盘ctrl+d,复制一份,重命名为EnemyHealth。

bubuko.com,布布扣

双击打开Enemy,修改类名为EnemyHealth,然后将血条位置离top设为40,拖动它到Hierarchy里的cube上。

GUI.Box (new Rect(10,40,healthBarLength,20),curHealth + "/" + maxHealth);


运行如图

bubuko.com,布布扣

简单3d RPG游戏 之 002 生命条(二),布布扣,bubuko.com

简单3d RPG游戏 之 002 生命条(二)

原文:http://www.cnblogs.com/rentianlong/p/3629776.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!