Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.02.2021
Сообщений: 12

Как массиву из скрипта записывать нужный объект с данными из массива-хранилища с другого скрипта?

29.10.2021, 01:17. Показов 1089. Ответов 1

Студворк — интернет-сервис помощи студентам
У меня есть 3-и скрипта. Первый кратко отвечает за создание префаба кнопки, записью в поле массив ScriptableObject объектов и отправкой их в хранилище, то есть в другой скрипт.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Collections.Generic;
using UnityEngine;
 
public class DragPanel : MonoBehaviour
{
    [SerializeField] private List<Button> _buttonsPrefab;
    [SerializeField] private ButtonStorage _buttonStorage;
    [SerializeField] private DragElement _dragPrefab;
 
    [SerializeField] private Transform _dragingParent;
    [SerializeField] private Transform _contentTransform;
     
    [SerializeField] private int _numberOfButtons = 3;
    
    private void Awake()
    {
        for (int i = 0; i < _numberOfButtons; i++)
        {
            var spawnButtons = Instantiate(_dragPrefab, _contentTransform);
            _buttonStorage.RetrievingData(_buttonsPrefab);
            spawnButtons.Init(_dragingParent);
        }
    }
}
Второй - это само хранилище которое с помощью метода эти данные принимает и в поле массив записывает, так-же имеет публичное свойство для чтения файлов в массиве.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Collections.Generic;
using UnityEngine;
 
public class ButtonStorage : MonoBehaviour
{
    [SerializeField] private List<Button> _buttonData;
 
    public List<Button> ButtonData => _buttonData;
 
    public void RetrievingData(List<Button> buttons)
    {
        _buttonData = buttons;
    }
}
Третий скрипт - это скрипт на кнопку который визуализирует её внешний вид исходя от данных файла ScriptibleObject, дело в том, что этот скрипт есть на каждой кнопке и исходя из этого к хранилищу обращаются сразу все кнопки, там лежат 3 файла и мне необходимо каждой кнопке дать свой файл как он был изначально загружен, как такое можно реализовать?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
[RequireComponent(typeof(Image))]
public class ButtonView : MonoBehaviour
{
    private List<Button> _buttons;
    private ButtonStorage _buttonStorage;
    private Image _image;
 
    private int _buttonIndex;
 
    private void Awake()
    {
        _buttonStorage = FindObjectOfType<ButtonStorage>();
 
        _buttons = _buttonStorage.ButtonData
    }
 
    private void OnEnable()
    {
        _buttonIndex++;
    }
 
    private void Start()
    {
        _image = GetComponent<Image>();
 
        for (int i = 0; i < _buttons.Count; i++)
        {
            if (_buttons != null)
                _image.sprite = _buttons[i].Sprite;
        }
    }
}
Скрипт создания кнопки:
C#
1
2
3
4
5
6
7
8
9
10
11
using UnityEngine;
 
[CreateAssetMenu(fileName = "New Button", menuName = "Creating a new button type/Create new type")]
public class Button : ScriptableObject
{
    [SerializeField] private Vector3 _direction;
    [SerializeField] private Sprite _sprite;
 
    public Vector3 Direction => _direction;
    public Sprite Sprite => _sprite;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2021, 01:17
Ответы с готовыми решениями:

Как добавить объект в массив, из другого скрипта?
Делаю в игре &quot;реалистичный&quot; магазин. Есть 2 скрипта, 1 - &quot;чек&quot;, он на кассе и на него нужно нажать, тогда из переменной GameObject , все...

Как остановить выполнение скрипта при запуске другого скрипта
У меня есть несколько скриптов python. В первом скрипте, при выполнении определенных условий, реализован запуск второго скрипта: ...

Как из одного скрипта изменить переменную (int) другого скрипта?
У меня есть два скрипта (money который отвечает за общее количество денег и CarBuy который отвечает за покупку машины). Мне нужно, чтобы...

1
0 / 0 / 0
Регистрация: 08.02.2021
Сообщений: 12
29.10.2021, 18:52  [ТС]
Уже не надо, я смог сам это реализовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2021, 18:52
Помогаю со студенческими работами здесь

Unity - Обращение к публичным полям одного скрипта из другого скрипта
Привет. Скрипты пишу на CSharp. В одном gameObject (назовем его HelloObject) есть два скрипта - Script1 и Script2. У script2 есть...

Запуск скрипта для анализа папки и запуска другого скрипта
Мне нужно написать скрипт, который каждую секунду (или 5 сек) сканировал определенную папку на поиск определенного файла. Например...

Как обратиться к ячейке массива из другого скрипта
В скрипте FLEX. У меня есть массив : public Vector2 boost;, где по X - цена, по Y - доход. Я создал скрипт PRICE для вывода цены в...

Вызов php скрипта из другого скрипта
Есть такой код echo ('&lt;img src=&quot;d.php?q='.$f.'&amp;s='.$z0.'&quot; width=&quot;50%&quot;&gt;'); Т.е. передаем скрипту d.php переменные q со значением $f, s...

Загрузка и выполнение скрипта из другого скрипта
Здравствуйте. У меня динамически скрипт формирует ссылку на которой лежит другой скрипт. Задача состоит в том, чтобы загрузить с этой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru