html游戏掉血效果图,用Unity3D实现游戏中加血减血效果

先来张效果图:

896e0d721301

加血.gif

896e0d721301

减血.gif

接下来看看是如何用Unity3D实现的吧!

using UnityEngine;

using System.Collections;

public class TestBoold : MonoBehaviour {

[SerializeField] private Transform _parentCanvas;

[SerializeField] private Transform _targetTransform;

[SerializeField] private GameObject _bloodPrefab;

[SerializeField] private UIBloodFollow _uiBloodFollow;

[SerializeField] private int _roleHp = 100;

///

/// 加血的方法

///

public void onAddBlood(){

//如果血量>100,满血 不执行加血

if (_roleHp >= 100) {

return;

}

var changeHp = Random.Range (10, 30);//每次加血量 在0-20之间

hpCalculate (true,changeHp);

getPrefabTransform ().onLossBloodAnimation (changeHp);

}

public void onReductionBlood(){

//如果血量<0,敌人死亡,便不再掉血

if (_roleHp <= 0) {

return;

}

var changeHp = Random.Range(0, -20);//每次掉血量 在0-20之间

hpCalculate (false,changeHp);

getPrefabTransform ().onLossBloodAnimation (changeHp);

}

//计算当前血量

void hpCalculate (bool isAddBlood, int changeHp = 0) {

_roleHp = isAddBlood ? _roleHp += changeHp : _roleHp += changeHp;

_uiBloodFollow.setHp (_roleHp);

}

LossBloodAnimation getPrefabTransform(){

GameObject go = Instantiate (_bloodPrefab);

go.transform.SetParent (_parentCanvas);

go.transform.position = Camera.main.WorldToScreenPoint (_targetTransform.position);

var lossBloodAnimation = go.GetComponent ();

go.SetActive (true);

return lossBloodAnimation;

}

}

陈老师在代码中标注了详细的注释,相信大家都能看明白。

文章原创,未经许可禁止转载。如需转载请联系我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值