public void DisplayFightInput(Cell fightCell) { if (_state != FightUIState.NONE) { return; } _state = FightUIState.ICONS; _actionCell = fightCell; _renderedIcons = new List <FightActionIcon>(); _iconPrefab = Resources.Load("prefabs/ui/icons/CanvasIcon") as GameObject; _canvasPrefab = Resources.Load("prefabs/WorldCanvas") as GameObject; _canvasObj = Instantiate(_canvasPrefab, transform, true) as GameObject; _canvas = _canvasObj.GetComponent <Canvas>(); _canvas.sortingOrder = ZIndex.FIGHT_UI; _canvasObj.transform.localPosition = fightCell.transform.localPosition; _createSelectionCircle(); float angleStep = 360f / _fightActionList.Count; float curAngle = -180f; float rlength = 100 * GameEngine.TO_UNITS; for (int i = 0; i < _fightActionList.Count; i++) { GameObject iconObj = Instantiate(_iconPrefab, _canvasObj.transform) as GameObject; FightActionIcon icon = iconObj.GetComponent <FightActionIcon>(); icon.Setup(); icon.sprite = _fightActionList[i]; icon.OnIconClick.AddListener(_onIconClick); icon.transform.localScale = Vector3.one * 0.8f; icon.transform.localPosition = Vector3.zero; icon.transform.DOScale(1, TIME_SHOW_ICONS_ANIMATION).SetDelay(TIME_SHOW_ICONS_DELAY); icon.transform.DOLocalMove( new Vector3(Mathf.Cos(curAngle * Mathf.PI / 180.0f) * rlength, Mathf.Sin(curAngle * Mathf.PI / 180.0f) * rlength), TIME_SHOW_ICONS_ANIMATION).SetDelay(TIME_SHOW_ICONS_DELAY); _renderedIcons.Add(icon); curAngle += angleStep; } }
private void _applyActionAndRemoveUI() { _processAction(); _state = FightUIState.NONE; if (_selectionCircle) { Destroy(_selectionCircle); } for (int i = 0; i < _renderedIcons.Count; i++) { FightActionIcon icon = _renderedIcons[i]; Destroy(icon.gameObject); } _renderedIcons = new List <FightActionIcon>(); }