Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class NewBehaviourScript : MonoBehaviour
- {
- [SerializeField] private Transform _prefab;
- [SerializeField] private RectTransform _content;
- private List<Sprite> _texture2Ds;
- private void Start()
- {
- Sprite[] sprites = Resources.LoadAll<Sprite>("obj");
- _texture2Ds = new List<Sprite>(sprites);
- StartCoroutine(GetItems(_texture2Ds.Count, OnReceivedModels));
- }
- private IEnumerator GetItems(int count, System.Action<TestItemModel[]> callback)
- {
- yield return null;
- var results = new TestItemModel[count];
- for (int i = 0; i < _texture2Ds.Count; i++)
- {
- results[i] = new TestItemModel { ButtonImageSprite = _texture2Ds[i] };
- }
- callback(results);
- }
- private void OnReceivedModels(TestItemModel[] models)
- {
- foreach (Transform child in _content)
- Destroy(child.gameObject);
- foreach (TestItemModel model in models)
- {
- Transform instance = Instantiate(_prefab);
- instance.SetParent(_content, false);
- InitializeItemView(instance, model);
- }
- }
- private void InitializeItemView(Transform viewGameObject, TestItemModel model)
- {
- var view = new TestItemView(viewGameObject.transform,model);
- view.ClickButton.onClick.AddListener(() => { RabochayOblast.dot = view.Pin; });
- }
- public class TestItemView
- {
- public readonly Transform Pin;
- public readonly Button ClickButton;
- public TestItemView(Transform rootView, TestItemModel model)
- {
- ClickButton = rootView.Find("clickButton").GetComponent<Button>();
- Pin = rootView.Find("pin").GetComponent<Transform>();
- ClickButton.image.sprite = model.ButtonImageSprite;
- }
- }
- public class TestItemModel
- {
- public Sprite ButtonImageSprite;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement