У меня есть скрипт, в котором объявлен массив спрайтов
public Sprite[] cards = new Sprite[11];
Как получить доступ к элементам этого массива из другого скрипта?
Вариантов решения много. Попробую описать два самых простых.
оффтоп: настоятельно советую имена классов и методов начинать с заглавной буквы, в дальнейшем это может помочь избегать путаниц между именами классов и переменных.
1. Ищем нужный компонент (класс-потомок MonoBehavior
)
Правки только по коду. На момент создания класса privet
класс main
должен существовать.
public class privet : MonoBehaviour
{
main mc;
Sprite temp;
//Для корректной работы следует обратить внимание на регистр написания имени этого метода
private void Start()
{
mc = FindObjectOfType<main>();
//если Вы уверены, что класс main находится на том же объекте, что и текущий, то можно так:
//mc = GetComponent<main>();
}
public void newsprites()
{
temp = mc.cards[0];
gameObject.GetComponent<Image>().sprite = temp;
}
}
2. Скрипт (класс) содержит общедоступную переменную
Этот способ годится только в случае, когда в Редакторе оба компонента расположены на одной сцене/префабе и т.д.
public class privet : MonoBehaviour
{
//Общедоступная переменная, в Редакторе в окне Иерархии перетаскиваем компонент `main` в это поле
public main mc;
private Sprite temp;
public void newsprites()
{
if (mc == null)
return;
temp = mc.cards[0];
gameObject.GetComponent<Image>().sprite = temp;
}
}
создайте экземпляр класса с массивом в вашем скрипте, например:
MyClass myClass = new MyClass();
myClass.cards[0];
Попробовал создать экземпляр класса с массивом, но ничего не вышло. Скрипт с массивом:
using UnityEngine;
public class main : MonoBehaviour
{
public Sprite[] cards = new Sprite[11];
}
Второй скрипт, из которого пытаюсь получить доступ к массиву :
using UnityEngine;
using UnityEngine.UI;
public class privet : MonoBehaviour
{
main mc = new main();
Sprite temp;
public void newsprites()
{
temp = mc.cards[0];
gameObject.GetComponent<Image>().sprite = temp;
}
}
В результате, вместо того что бы поставить на объект новый спрайт, удаляется уже существующий.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть 2D объект, который вращается, однако он должен прекратить вращение при повороте на 90 градусовПроблема в том что он вращается беспрерывно
Подскажите пожалуйста в интернете не нашёл как отправить любой файл форматаtxt,