Пример #1
0
    //### Asset情報 ###

    public void SetAsset(EnemyBossAsset ea)
    {
        asset    = ea;
        enemy    = asset.enemy;
        spawnPos = StageManager.Instance.GetPoint(asset.pos, true, true);
        spawnQua = StageManager.Instance.GetQuaternion(spawnPos);
    }
Пример #2
0
    //Timelineセット
    private void SetStageTimeline()
    {
        if (AppManager.Instance.stageObj == null)
        {
            Pause();
            UnityAction callback = () => Return();
            DialogManager.Instance.OpenMessage("ステージ情報取得に失敗しました。", callback);
            return;
        }
        stage                = Instantiate(AppManager.Instance.stageObj);
        timeline             = stage.GetComponent <PlayableDirector>();
        timeline.playOnAwake = false;

        //プログレスバー
        string startTxt = PROGRESS_START;
        string endTxt   = PROGRESS_END;

        TrackAsset[] tracks = (timeline.playableAsset as TimelineAsset).GetOutputTracks() as TrackAsset[];
        foreach (TrackAsset track in tracks)
        {
            if (StageManager.Instance.IsBoss())
            {
                //ボス戦の場合はHP
                IEnumerable <TimelineClip> clips = track.GetClips();
                TimelineClip clip = clips.FirstOrDefault(x => x.asset is EnemyBossAsset);
                if (clip == null)
                {
                    continue;
                }
                EnemyBossAsset eba = (EnemyBossAsset)clip.asset;
                battleEndProgress += eba.GetBossHp();
            }
            else
            {
                //通常戦の場合はタイムライン終了時間
                if (battleEndProgress > track.end)
                {
                    continue;
                }
                battleEndProgress = (float)track.end;
            }
        }
        SetPowRate();
        progressStartText.text = startTxt;
        progressEndText.text   = endTxt;
    }