示例#1
0
        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;
            }
        }
示例#2
0
        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>();
        }