using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Passer.Humanoid { public class PossessionsUI : MonoBehaviour { private Canvas _canvas; public Canvas canvas { get { if (_canvas == null) _canvas = GetComponent(); return _canvas; } } protected VisitorPossessions humanoidPossessions; public PossessionDetailsUI posessionDetailsUI; private void OnEnable() { GenerateMenu(); } private void OnDisable() { ClearMenu(); } private void GenerateMenu() { if (canvas == null) return; int position = 0; HumanoidControl humanoid = this.GetComponentInParent(); humanoidPossessions = humanoid.GetComponentInChildren(); ShowPossessions(humanoidPossessions.myPossessions, position); } private void ShowPossessions(List possessions, int position) { foreach (VisitorPossessions.Possession possession in possessions) ShowPossession(possession, position++); } private void ShowPossession(VisitorPossessions.Possession possession, int position) { GameObject menuButtonPrefab = (GameObject)Resources.Load("MenuButton"); if (menuButtonPrefab == null) Debug.LogError("MenuButton prefab is not found in a Resources folder"); int yPosition = 125 - position * 75; GameObject possessionButton = Instantiate(menuButtonPrefab); possessionButton.transform.SetParent(canvas.transform); possessionButton.transform.localPosition = new Vector3(30, yPosition, 0); possessionButton.transform.localRotation = Quaternion.identity; possessionButton.transform.localScale = Vector3.one; possessionButton.name = possession.name; Text text = possessionButton.GetComponentInChildren(); text.text = possession.name; Button button = possessionButton.GetComponent