private int currentButtonID = -1; //last touched button, for touch mode only public void OnTowerButton(GameObject butObj, int pointerID = -1) { int ID = GetButtonID(butObj); if (UIMainControl.InTouchMode() && !BuildManager.UseDragNDrop()) { if (currentButtonID >= 0) { buttonList[currentButtonID].imgHighlight.enabled = false; } if (currentButtonID != ID) { currentButtonID = ID; buttonList[ID].imgHighlight.enabled = true; OnHoverButton(butObj); return; } ClearTouchModeButton(); } string exception = BuildManager.BuildTower(ID, buildInfo, pointerID); if (exception != "") { UIMessage.DisplayMessage(exception); return; } buildInfo = null; if (!BuildManager.UseDragNDrop()) { Hide(); } }
void Update() { if (BuildManager.UseDragNDrop() || !UIMainControl.UsePieMenu()) { return; } if (buildInfo == null) { return; } Vector3 screenPos = Camera.main.WorldToScreenPoint(buildInfo.position) * UIMainControl.GetScaleFactor(); List <Vector3> pos = GetPieMenuPos(activeButtonList.Count, screenPos, 120, 50); for (int i = 0; i < activeButtonList.Count; i++) { if (i < pos.Count) { activeButtonList[i].rectT.localPosition = pos[i]; } else { activeButtonList[i].rectT.localPosition = new Vector3(0, 9999, 0); } } }
void OnCursorDown(Vector3 cursorPos) { UnitTower tower = GameControl.Select(cursorPos); GameControl.SelectTower(tower); if (tower != null) { if (!BuildManager.UseDragNDrop()) { UIBuildButton.Hide(); } if (autoCenterCamera) { CameraControl.SetPosition(tower.thisT.position); } UITowerView.Show(tower); } else { UITowerView.Hide(); if (!BuildManager.UseDragNDrop()) { BuildInfo buildInfo = BuildManager.CheckBuildPoint(cursorPos); UIBuildButton.Show(buildInfo); if (buildInfo.status == _TileStatus.Available && autoCenterCamera) { CameraControl.SetPosition(buildInfo.position); } } } }
void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { if (BuildManager.UseDragNDrop() && BuildManager.InDragNDrop()) { return; } if (!UITowerView.IsOn() && !AbilityManager.IsSelectingTarget() && !UIPerkMenu.IsOn() && !UIFPS.IsOn()) { TogglePause(); } } //keyboard for cursor based input start here if (!enableInput) { return; } if (Input.touchCount > 1) { return; } if (UI.IsCursorOnUI(0) || UI.IsCursorOnUI()) { return; } if (Input.GetMouseButtonDown(0)) { OnCursorDown(Input.mousePosition); } }
public void OnExitButton(GameObject butObj) { HideTooltip(); if (!BuildManager.UseDragNDrop()) { BuildManager.ClearSampleTower(); } }
public void OnHoverButton(GameObject butObj) { ShowTooltip(BuildManager.GetSampleTower(GetButtonID(butObj))); if (!BuildManager.UseDragNDrop() && buildInfo != null) { BuildManager.ShowSampleTower(GetButtonID(butObj), buildInfo); } }
void OnDragNDrop(bool flag) { if (!BuildManager.UseDragNDrop()) { return; } butCancelCanvasG.alpha = flag ? 1 : 0; butCancelCanvasG.interactable = flag; }
public void _Show(BuildInfo bInfo = null) { if (!BuildManager.UseDragNDrop()) { if (bInfo != null) { ClearTouchModeButton(); buildInfo = bInfo; //BuildManager.GetBuildInfo(); UpdateActiveBuildButtonList(); } else { return; } } rectT.localPosition = new Vector3(0, 0, 0); UIMainControl.FadeIn(canvasGroup, 0.25f, thisObj); }
void Start() { if (BuildManager.GetInstance() == null) { return; } List <UnitTower> towerList = BuildManager.GetTowerList(); for (int i = 0; i < towerList.Count; i++) { if (i == 0) { buttonList[0].Init(); } else if (i > 0) { buttonList.Add(UIButton.Clone(buttonList[0].rootObj, "BuildButton" + (i + 1))); } buttonList[i].imgIcon.sprite = towerList[i].iconSprite; buttonList[i].imgHighlight.enabled = false; if (UIMainControl.InTouchMode()) { buttonList[i].SetCallback(null, null, this.OnTowerButton, null); } else { buttonList[i].SetCallback(this.OnHoverButton, this.OnExitButton, this.OnTowerButton, null); } } if (!BuildManager.UseDragNDrop()) { canvasGroup.alpha = 0; rectT.localPosition = new Vector3(0, 99999, 0); } if (!BuildManager.UseDragNDrop() && UIMainControl.UsePieMenu()) { layoutGroup.enabled = false; tooltipObj.transform.localPosition -= new Vector3(0, 60, 0); } else { layoutGroup.enabled = true; } List <Rsc> rscList = ResourceManager.GetResourceList(); for (int i = 0; i < rscList.Count; i++) { if (i == 0) { tooltipRscItemList[0].Init(); } else { tooltipRscItemList.Add(UIObject.Clone(tooltipRscItemList[0].rootObj, "Rsc" + (i + 1))); } tooltipRscItemList[i].imgRoot.sprite = rscList[i].icon; tooltipRscItemList[i].label.text = rscList[i].value.ToString(); } if (!BuildManager.UseDragNDrop()) { butCancelObj.SetActive(false); } else { butCancelCanvasG = butCancelObj.AddComponent <CanvasGroup>(); butCancelObj.transform.SetAsLastSibling(); OnDragNDrop(false); } tooltipObj.SetActive(false); }