public ResearchAction CreateResearch(ResearchBase research) { ResearchAction researchAction = ScriptableObject.CreateInstance <ResearchAction>(); researchAction.research = research; return(researchAction); }
private void UpdateUI() { foreach (GameObject researchButton in m_ResearchButtons) { ResearchBase research = researchButton.GetComponentInChildren <ResearchView>().Research; bool fulfilledPrerequisites = research.prerequesites.All(prerequesite => m_ResearchState.AlreadyResearched.Contains(prerequesite)); researchButton.GetComponentInChildren <Button>().interactable = !m_ResearchState.AlreadyResearched.Contains(research) && fulfilledPrerequisites; } }
private void CreateResearchButton(ResearchBase research, Transform parent) { GameObject researchButton = Instantiate(m_ResearchButtonPrefab, parent); GameObject researchViewPrefab = m_ResearchController.GetResearchPrefab(research); GameObject researchViewObject = Instantiate(researchViewPrefab, researchButton.transform); researchButton.GetComponentInChildren <TextMeshProUGUI>().text = research.displayName; researchButton.GetComponentInChildren <Image>().sprite = researchViewPrefab.GetComponent <ResearchView>().Sprite; researchButton.GetComponentInChildren <Button>().onClick.AddListener(() => { ResearchButtonClickedInput researchButtonClickedInput = new ResearchButtonClickedInput() { research = research }; m_InputController.RegisterInputEvent(researchButtonClickedInput); }); m_ResearchButtons.Add(researchButton); }
public GameObject GetResearchPrefab(ResearchBase research) { return(availableResearch.Find(researchView => researchView.Research.name == research.name).gameObject); }