Есть 2 класса( 2 разных скрипта). Первый:
public class ManaBar : MonoBehaviour // скрипт манабара с классом мана
{
public Image barImage;
public Mana mana;
public void Awake()
{
barImage = transform.Find("Bar").GetComponent<Image>();
mana = new Mana();
}
public void Update()
{
mana.Update();
barImage.fillAmount = mana.GetManaNormalized();
}
}
public class Mana
{
public const int MANA_MAX = 100;
public float manaAmount;
public float manaRegenAmount;
public Mana()
{
manaAmount = 0;
manaRegenAmount = 0.2f;
}
public void Update()
{
manaAmount += manaRegenAmount + Time.deltaTime;
manaAmount = Mathf.Clamp(manaAmount, 0f, MANA_MAX);
}
public void Cast(int amount) // - метод который нам нужно вызвать во втором скрипте
{
if (manaAmount >= amount)
{
manaAmount -= amount;
}
}
public float GetManaNormalized()
{
return manaAmount / MANA_MAX;
}
}
Второй класс (и второй скрипт по совместительству) в котором нужно вызвать метод Cast:
public class weapon : MonoBehaviour
{
public Transform Firepoint;
public GameObject FireballPrefab;
public Mana manacast;
void Start()
{
manacast = new Mana();
}
public void Update()
{
if (Input.GetButtonUp("Fire1")) // - когда нажимаем на кнопку стреляем и отнимаем ману
{
Shoot();
manacast.Cast(10);
}
}
public void Shoot()
{
Instantiate(FireballPrefab, Firepoint.position, Firepoint.rotation);
}
Проблема в том, что нет никакой реакции на этот метод. Заранее спасибо если объясните что не так!
Продвижение своими сайтами как стратегия роста и независимости