アイテム生成②
・プレイヤーでのアイテム管理
攻撃強化アイテムは取得してから5秒間効果が続きますが、
回復アイテムは取った時に効果を発揮します。
public void GetItem(DropItem.ItemKind itemKind)
{
switch (itemKind)
{
case DropItem.ItemKind.Attack:
powerBoostTime = 5.0f;
break;
case DropItem.ItemKind.Heal:
// MaxHPの半分回復
HP = Mathf.Min(HP + MaxHP / 2, MaxHP);
break;
}
攻撃強化アイテムを取った時にpowerBoostTimeに効果時間を入力。
効果時間中はpowerBoostをtrueにしておく。
void Update()
{
powerBoost = false;
if (powerBoostTime > 0.0f)
{
powerBoost = true;
powerBoostTime = Mathf.Max(powerBoostTime - Time.deltaTime, 0.0f);
}
}
・Mathf.MinとMathf.Max
Min(a,b)はaとbの小さい方を返します。Maxは逆です。
HP = Mathf.Min(HP + MaxHP / 2.0f,MaxHP);
現在のHPに最大HPの半分を足した値がMaxHPを超えていれば、MaxHPを返す。
// 攻撃情報を取得する.
AttackInfo GetAttackInfo()
{
AttackInfo attackInfo = new AttackInfo();
// 攻撃力の計算.
attackInfo.attackPower = status.Power;
// 攻撃強化中
if (status.powerBoost)
attackInfo.attackPower += attackInfo.attackPower;
attackInfo.attacker = transform.root;
return attackInfo;
}