//### Asset情報 ### public void SetAsset(EnemyBossAsset ea) { asset = ea; enemy = asset.enemy; spawnPos = StageManager.Instance.GetPoint(asset.pos, true, true); spawnQua = StageManager.Instance.GetQuaternion(spawnPos); }
//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; }