示例#1
0
 public override void HandleInput(InputEvent inputEvent)
 {
     if (inputEvent is ResearchButtonClickedInput)
     {
         ResearchButtonClickedInput researchButtonClickedInput = inputEvent as ResearchButtonClickedInput;
         ResearchAction             researchAction             = researchController.CreateResearch(researchButtonClickedInput.research);
         if (researchAction.CanExecute(player))
         {
             researchAction.Execute(player);
         }
     }
     if (inputEvent is OpenResearchInput)
     {
         dispatcher.Dispatch <IdleState>();
     }
 }
示例#2
0
        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);
        }