这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

55 行
1.2 KiB

using UnityEngine;
using UnityEngine.Localization;
public class Damageable : MonoBehaviour
{
[SerializeField]
private HealthConfigSO _healthConfigSO;
[SerializeField]
private GetHitEffectConfigSO _getHitEffectSO;
[SerializeField]
private Renderer _mainMeshRenderer;
[SerializeField]
private DroppableRewardConfigSO _droppableRewardSO;
public DroppableRewardConfigSO DropableRewardConfig => _droppableRewardSO;
private int _currentHealth = default;
public bool getHit { get; set; }
public bool isDead { get; set; }
public GetHitEffectConfigSO GetHitEffectConfig => _getHitEffectSO;
public Renderer MainMeshRenderer => _mainMeshRenderer;
private void Awake()
{
_currentHealth = _healthConfigSO.MaxHealth;
}
private void ReceiveAnAttack(int damange)
{
_currentHealth -= damange;
getHit = true;
if (_currentHealth <= 0)
{
isDead = true;
}
}
private void OnTriggerEnter(Collider other)
{
// Avoid friendly fire!
if (!other.tag.Equals(gameObject.tag))
{
Attack attack = other.GetComponent<Attack>();
if (!getHit && attack != null && attack.Enable)
{
ReceiveAnAttack(attack.AttackConfig.AttackStrength);
}
}
}
}