Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ResultLineEntity {
- public int Place;
- public readonly string Title;
- public readonly TimeSpan Time;
- public ResultLineEntity(string title, TimeSpan time, int? place = null) {
- if (place != null) Place = place.Value;
- Title = title;
- Time = time;
- }
- }
- public class ResultsUi : MonoBehaviour {
- public static ResultLineEntity[] Lines
- {
- get => _lines;
- set
- {
- _lines = value;
- OnLinesChange?.Invoke();
- }
- }
- private static ResultLineEntity[] _lines;
- public static UnityEvent OnLinesChange { get; private set; } = new UnityEvent();
- [SerializeField] private Transform root;
- [SerializeField] private ResultLineUi prefab;
- private void Awake() {
- SetLines();
- OnLinesChange?.AddListener(SetLines);
- }
- public void SetLines() {
- if (Lines==null || Lines.Length < 1) return;
- foreach (var child in root.GetComponentsInChildren<ResultLineUi>()) {
- Destroy(child.gameObject);
- }
- var resultsOrdered = Lines.OrderBy(x => x.Time).ToArray();
- for (var index = 0; index < resultsOrdered.Length; index++) {
- var line = resultsOrdered[index];
- line.Place = index + 1;
- var currentLine = Instantiate(prefab, root);
- currentLine.SetLine(line);
- }
- }
- }
- //EXAMPLE
- //ResultsUi.Lines = lines;
- //SceneManager.LoadScene(ResultsSceneName, LoadSceneMode.Additive);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement