Beispiel #1
0
    private Vector3 GetBattleCameraOriginPosition(int shipStrait = Def.ShipTrait.CommanderShip)
    {
        bool              bFind     = false;
        Vector3           targetPos = new Vector3(0, 0, -5000);
        List <ClientShip> list      = BattleSys.GetPlayerShipList();

        foreach (var iter in list)
        {
            if (shipStrait == Def.ShipTrait.Carrier)
            {
                if (iter.GetShipStrait() > shipStrait)
                {
                    continue;
                }
            }
            else
            {
                if (iter.GetShipStrait() != shipStrait)
                {
                    continue;
                }
            }
            if (iter.Position.z <= targetPos.z)
            {
                continue;
            }
            targetPos = iter.Position;
            bFind     = true;
        }
        if (bFind)
        {
            return(targetPos);
        }
        else
        {
            // 没找到指挥舰,则找船
            if (shipStrait == Def.ShipTrait.CommanderShip)
            {
                shipStrait = Def.ShipTrait.Carrier;
            }
            else if (shipStrait == Def.ShipTrait.Carrier)
            {
                shipStrait = Def.ShipTrait.Boat;
            }
            // 没找到船,返回
            else if (shipStrait == Def.ShipTrait.Boat)
            {
                return(targetPos);
            }
            return(GetBattleCameraOriginPosition(shipStrait));
        }
    }