(в Unity 2D) Итак, у меня есть сценарий для суммы денег и яблок, которые есть в моей игре, и я хочу, чтобы более 1 игрового объекта имели сценарий количества яблок. кстати, есть недействительный TransferMoney и IS publi c. Я делаю это, и мне нужно передать имеющуюся у меня сумму денег в сценарий apple, но поскольку это массив, он выдает следующую ошибку: (55,16): error CS1061: 'apple []' не содержит определения для 'TransferMoney' и не может быть найден доступный метод расширения 'TransferMoney', принимающий первый аргумент типа 'apple []' (вы пропустили директиву using или ссылку на сборку?) Вот сценарий денег:
public class numberofmoney : MonoBehaviour //script in the Text UI "amount of money" {
static public int scenemoney;
public string house;
public string shopString;
public TMP_Text moneyText;
public cookie1 Cookie;
public apple[] apples;
public void BoughtApple(int currentAOM)//aom stands for 'amount of money'
{
scenemoney = currentAOM;
}
void Awake()
{
apples = GameObject.FindObjectsOfType<apple>(); //finds apple
}
void Start()
{
Scene cookie = SceneManager.GetActiveScene();
house = cookie.name; //checks scene and does part of converting to string
Scene shop = SceneManager.GetActiveScene();
shopString = shop.name; //checks scene and does part of converting to string
}
public void forCookie(int money)
{
scenemoney = money;
}
void Update()
{
string scenemoneystring = scenemoney.ToString();
moneyText.SetText(scenemoneystring); //Converts money and sets text
if (house == "House") { //transfers money between scripts #1
Cookie.transferMoney(scenemoney);
}
if (shopString == "store") { //transfers money between scripts #2
apples.TransferMoney(scenemoney);
}
}
}
и сценарий яблок:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro;
public class apple : MonoBehaviour {
public string appleString;
public int publicMoney;
public int Apples;
public NumberOfApples numberOfApples;
public TMP_Text tmp;
public numberofmoney NumberOfMoney;
void Awake()
{
numberOfApples = GameObject.FindObjectOfType<NumberOfApples>();
NumberOfMoney = GameObject.FindObjectOfType<numberofmoney>();
}
public void TransferMoney(int money)
{
publicMoney = money;
}
void OnTriggerEnter2D(Collider2D trigger)
{
if (publicMoney >= 10){
Destroy(this.gameObject);
Apples++;
publicMoney -= 10;
appleString = Apples.ToString();
tmp.SetText(appleString);
NumberOfMoney.BoughtApple(publicMoney);
}
numberOfApples.transferApples(Apples);
}
}