Пример #1
0
        private IEnumerator CreateAerialCombatCutIn(IObserver <bool> observer)
        {
            BattleCameras           cams         = BattleTaskManager.GetBattleCameras();
            BattleCutInCamera       inCam        = BattleTaskManager.GetBattleCameras().cutInCamera;
            BattleCutInEffectCamera efCam        = BattleTaskManager.GetBattleCameras().cutInEffectCamera;
            BattleShips             _battleShips = BattleTaskManager.GetBattleShips();

            _prodSupportAerialPhase1 = ProdSupportAerialPhase1.Instantiate(fShips: _battleShips.dicFriendBattleShips, eShips: _battleShips.dicEnemyBattleShips, prefab: Resources.Load <ProdSupportAerialPhase1>("Prefabs/Battle/Production/SupportingFire/ProdSupportAerialPhase1"), model: _clsAerial, parent: cams.cutInCamera.transform.parent);
            if (_clsAerial.GetPlanes(is_friend: true) != null && _clsAerial.GetPlanes(is_friend: false) != null)
            {
                inCam.isCulling = true;
                efCam.isCulling = true;
            }
            else if (_clsAerial.GetPlanes(is_friend: true) != null)
            {
                efCam.isCulling = false;
            }
            yield return(new WaitForEndOfFrame());

            _prodSupportAerialPhase2 = ProdSupportAerialPhase2.Instantiate(Resources.Load <ProdSupportAerialPhase2>("Prefabs/Battle/Production/SupportingFire/ProdSupportAerialPhase2"), _clsAerial, inCam.transform);
            yield return(new WaitForEndOfFrame());

            _prodSupportAerialPhase2.CreateHpGauge(FleetType.Enemy);
            yield return(new WaitForEndOfFrame());

            observer.OnNext(value: true);
            observer.OnCompleted();
        }
        private IEnumerator _createAsyncAircrafts()
        {
            _listAircraft = new List <ProdAerialAircraft>();
            PlaneModelBase[] fPlanes = _clsAerial.GetPlanes(is_friend: true);
            PlaneModelBase[] ePlanes = _clsAerial.GetPlanes(is_friend: false);
            for (int j = 0; j < fPlanes.Length; j++)
            {
                if (fPlanes[j] != null)
                {
                    if (j >= 6)
                    {
                        break;
                    }
                    _listAircraft.Add(_instantiateAircraft(_uiAirObjF[0].transform, j, fPlanes[j], FleetType.Friend));
                    if (_iType == CutInType.Both)
                    {
                        _listAircraft.Add(_instantiateAircraft(_uiAirObjF[1].transform, j, fPlanes[j], FleetType.Friend));
                    }
                }
            }
            yield return(null);

            for (int i = 0; i < ePlanes.Length; i++)
            {
                if (ePlanes[i] != null)
                {
                    if (i >= 6)
                    {
                        break;
                    }
                    _listAircraft.Add(_instantiateAircraft(_uiAirObjE[0].transform, i, ePlanes[i], FleetType.Enemy));
                    if (_iType == CutInType.Both)
                    {
                        _listAircraft.Add(_instantiateAircraft(_uiAirObjE[1].transform, i, ePlanes[i], FleetType.Enemy));
                    }
                }
            }
            yield return(null);
        }