public void OnClickUnitDefinitionGui(UnitDefinitionGui unitDefinitionGui, int relatedCreatableUnitsIndex) { if (creatableUnits[relatedCreatableUnitsIndex].remainCoolTime != 0f) { Debug.Log("Still cooling."); } else if (currentCost < creatableUnits[relatedCreatableUnitsIndex].cost) { Debug.Log("Not enough cost."); } else { GameObject unitGo = Instantiate <GameObject>(creatableUnits[relatedCreatableUnitsIndex].prefab, gameStartPosition.transform.position, Quaternion.identity); unitGo.name = "Unit" + unitSeqNum++; MyBotAi myBotAi = unitGo.GetComponent <MyBotAi>(); myBotAi.destroyOperationTarget = enemyBarrack; currentCost -= creatableUnits[relatedCreatableUnitsIndex].cost; creatableUnits[relatedCreatableUnitsIndex].remainCoolTime = creatableUnits[relatedCreatableUnitsIndex].coolTime; UpdateGuisAboutCost(); StartCoroutine(CoolTimeReductionCoroutine(relatedCreatableUnitsIndex)); unitDefinitionGui.StartCoolTimeDisplayUpdate(); } }
public void Initialize(int numOfItem) { foreach (var unitDefGui in unitDefinitionGuis) { Destroy(unitDefGui.gameObject); } unitDefinitionGuis.Clear(); for (int i = 0; i < numOfItem; i++) { GameObject unitDefGuiGo = Instantiate <GameObject>(unitDefinitionGuiPrefab, scrollViewContent); RectTransform rectTransform = unitDefGuiGo.GetComponent <RectTransform>(); UnitDefinitionGui unitDefGui = unitDefGuiGo.GetComponent <UnitDefinitionGui>(); //Positioning rectTransform.anchoredPosition = new Vector2(rectTransform.sizeDelta.x * i, 0); unitDefinitionGuis.Add(unitDefGui); } gameObject.SetActive(true); }
void UnitDefinitionGui.IGameRule.OnClick(UnitDefinitionGui unitDefinitionGui) { gameMode.OnClickUnitDefinitionGui(unitDefinitionGui, creatableUnitIndex); }
float UnitDefinitionGui.IGameRule.GetRemainCoolTime(UnitDefinitionGui unitDefinitionGui) { return(gameMode.creatableUnits[creatableUnitIndex].remainCoolTime); }