Ошибка возникает из-за того, что свойство interactable должно быть с маленькой буквы 'i'. В Unity это свойство типа Button пишется с маленькой буквы. Вот исправленный код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AchMenu : MonoBehaviour
{
public int total_money;
[SerializeField] Button firstAch;
[SerializeField] bool isFirst;
void Start()
{
total_money = PlayerPrefs.GetInt("total_money");
isFirst = PlayerPrefs.GetInt("isFirst") == 1 ? true : false;
if (total_money >= 1000 && !isFirst)
{
firstAch.interactable = true;
}
else
{
firstAch.interactable = false;
}
}
public void GetFirst()
{
int money = PlayerPrefs.GetInt("money");
money += 10;
PlayerPrefs.SetInt("money", money);
isFirst = true;
PlayerPrefs.SetInt("isFirst", isFirst ? 1 : 0);
}
void Update()
{
}
}
Теперь свойство interactable должно работать корректно.
Ошибка (активно) CS1061 "Button" не содержит определения "interactable", и не удалось найти доступный метод расширения "interactable", принимающий тип "Button" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). Вот код.