Ошибка в Visual Studio
Делаю кликер, вылазит ошибка в двух скриптах, в первом Game.UpdateUI() недоступен из-за его уровня защиты
1234567891011121314151617181920212223242526272829303132333435
using UnityEngine.EventSystems;
using TMPro;
using UnityEngine;
public class AmplifierPref : MonoBehaviour, IPointerClickHandler
{
[SerializeField]
private TextMeshProUGUI level;
private DamageAmplifier amplifier;
public void SetData(DamageAmplifier amplifier)
{
this.amplifier = amplifier;
UpdateUI();
}
private void UpdateUI()
{
level.text = "x" + amplifier.Level;
}
public void OnPointerClick(PointerEventData eventData)
{
if (Game.Instanse.Money < amplifier.Price)
return;
Game.Instanse.Money -= amplifier.Price;
amplifier.LevelUp();
UpdateUI();
Game.Instanse.UpdateUI();
}
}
Второй Game.Click () недоступен из-за его уровня защиты
1234567891011121314151617181920212223242526
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ClickTarget : MonoBehaviour
{
private Vector2 normalScale;
private Vector2 clickedScale;
private void Awake()
{
normalScale = transform.localScale;
clickedScale = new Vector2(normalScale.x - .05f, normalScale.y - .05f);
}
private void OnMouseDown()
{
transform.localScale = clickedScale;
}
private void OnMouseUp()
{
transform.localScale = normalScale;
Game.Instanse.Click();
}
}
Помогите пожалуйста!
По дате
По рейтингу
В классе Game нужно изменить модификаторы доступа для методов. Есть два варианта:
1. Сделать методы публичными:
123456789101112131415
public class Game : MonoBehaviour
{
// ... остальной код ...
public void UpdateUI() // изменить с private на public
{
// код метода
}
public void Click() // изменить с private на public
{
// код метода
}
}
2. Если методы должны быть доступны только для определенных классов, можно использовать protected:
123456789101112131415
public class Game : MonoBehaviour
{
// ... остальной код ...
protected void UpdateUI()
{
// код метода
}
protected void Click()
{
// код метода
}
}
У тебя UpdateUI и Click указаны как private, а надо как public.
Походу с тегами у класса Game намудрил, сделав его недоступным извне. Смотри, где его объявляешь.
Больше по теме