コード例 #1
0
    public void HandleForBack()
    {
        if (aiForCharacterPath.IsAutoMoveStopForEndPath())
        {
            System.Action afterAction = () =>
            {
                //扔完之后处理
                if (handler_Gold.GetTargetGold(transform.position) == null)
                {
                    //如果没有金币。说明已经搬完 回收
                    SetIntentForIdle();
                    handler_Character.CleanCharacter(this);
                    Destroy(gameObject);
                }
                else
                {
                    SetIntentForGoToIsland();
                }
            };

            if (handGold != null)
            {
                //增加角色金币
                long addGold = handler_Game.AddGoldNumber(characterData.characterType, handGold.goldData.gold_price, 1);
                //刷新UI
                handler_Gold.manager_UI.RefreshAllUI();
                //回收金币
                ShipCpt shipCpt = handler_Ship.GetShip(characterData.characterType);
                handGold.SetRecycle(addGold, shipCpt.transform.position);
                //角色扔金币
                characterAnim.SetCharacterThrow(null, afterAction);
            }
            else
            {
                afterAction?.Invoke();
            }
            //检测游戏是否结束
            handler_Game.CheckGameOver();
        }
    }