В моей игре есть инвентарь, в котором игрок может экипировать или выпить предмет.В моем инвентаре у меня есть зелье, которое игрок может использовать.Когда игрок использует зелье, это увеличивает здоровье персонажа.Итак, у меня есть ошибка, как это: не могу неявно преобразовать тип void в Player.Почему у меня такая ошибка?Очень ценю ваши ответы, ребята.Спасибо!
IConsumable.cs
public interface IConsumable {
void Consume(Player player);
void Consume(CharacterStats stats);
}
ConsumableController.cs
public class ConsumableController : MonoBehaviour {
CharacterStats stats;
Player player;
int health = 100;
void Start() {
stats = GetComponent<Player> ().characterStats;
player = GetComponent<Player> ().IncreaseHealth(health);
}
public void ConsumeItem(Item item) {
GameObject itemToSpawn = Instantiate (Resources.Load<GameObject>("Consumables/" + item.ObjectSlug));
if (item.ItemModifier) {
itemToSpawn.GetComponent<IConsumable> ().Consume (stats);
} else {
itemToSpawn.GetComponent<IConsumable> ().Consume (player);
}
}
}
PotionLog.cs
public class PotionLog : MonoBehaviour, IConsumable {
public void Consume(Player player) {
Debug.Log ("You drank a swig of the potion. Cool!");
Destroy (gameObject);
}
public void Consume(CharacterStats stats) {
Debug.Log ("You drank a swig of the potion. Rad!");
}
}
Player.cs
public class Player : MonoBehaviour {
public CharacterStats characterStats;
public int currentHealth;
public int maxHealth;
public PlayerLevel PlayerLevel { get; set; }
void Awake() {
PlayerLevel = GetComponent<PlayerLevel> ();
//this.currentHealth = this.maxHealth;
characterStats = new CharacterStats (5, 10, 2);
}
public void TakeDamage(int amount) {
Debug.Log ("Player takes: " + amount + " damage!");
currentHealth -= amount;
if (currentHealth <= 0)
Die ();
UIEventHandler.HealthChanged (this.currentHealth, this.maxHealth);
}
public void IncreaseHealth(int health) {
currentHealth += health;
if (currentHealth == maxHealth)
return;
UIEventHandler.HealthChanged (this.currentHealth, this.maxHealth);
}
private void Die() {
Debug.Log ("Player dead! Reset health.");
this.currentHealth = this.maxHealth;
UIEventHandler.HealthChanged (this.currentHealth, this.maxHealth);
}
}