//---------------------------------------------------------------------------------------------------- /// <summary> /// ボス画像が並ぶ /// </summary> void BossImageLineUp() { //移動 Transposition(BossImage[m_numAppearingImages].gameObject, Vector3.zero, m_initPosBossImage[m_numAppearingImages] / 2, m_countTimeState - (m_bossImageAppealTime + m_bossImageAppearanceTime), m_bossImageLineUpTime); //倍率 BossImage[m_numAppearingImages].transform.localScale = Vector3.one * (Mathf.Min(((m_bossImageLineUpTime - (m_countTimeState - (m_bossImageAppealTime + m_bossImageAppearanceTime))) + 1), m_bossImageMagnification)); //並ぶ時間を超えたor了解ボタンの押下 if (m_countTimeState - (m_bossImageAppealTime + m_bossImageAppearanceTime) >= m_bossImageLineUpTime || m_isPressedOk) { BossImage[m_numAppearingImages].transform.localPosition = m_initPosBossImage[m_numAppearingImages] / 2; BossImage[m_numAppearingImages].transform.eulerAngles = Vector3.zero; BossImage[m_numAppearingImages++].transform.localScale = Vector3.one; AppealText.text = ""; m_openingState = OpeningStatus.WaitForUserInput; //ボス画像が全て並んだ if (m_numAppearingImages >= BossImage.Length) { m_stateNum++; } } }
//---------------------------------------------------------------------------------------------------- /// <summary> /// オープニングを開始 /// </summary> public void StartOpening() { //視聴済み if (PlayerPrefs.GetInt(PlayerPrefsKeys.IS_WATCH_OPENING) == PlayerPrefsKeys.TRUE) { m_isEnd = true; return; } gameObject.SetActive(true); Sign.SetActive(false); King.SetActive(false); Boss.SetActive(false); m_stateNum = 0; m_serifNum = 0; m_serifStatementNum = 0; m_numAppearingImages = 0; AppealText.text = ""; m_openingState = OpeningStatus.Moving; m_openingStatePrev = OpeningStatus.NotOpening; m_isEnd = false; //BGMの再生 MySoundManager.Instance.Play(BgmCollection.Openning); }
//---------------------------------------------------------------------------------------------------- /// <summary> /// 動作処理3 /// </summary> void MovingProcess3() { //初めて状態が変わった(個別設定) if (m_openingState != m_openingStatePrev) { Sign.SetActive(false); King.SetActive(false); Boss.SetActive(true); m_bossImageAppearanceState = BossImageAppearanceStatus.Emergence; for (var i = m_numAppearingImages; i < BossImage.Length; i++) { //ボス画像を指定の位置へ BossImage[i].transform.localPosition = m_initPosBossImage[i] * (1 + (1.0f / (m_screenSize.x / BossImage[i].rectTransform.sizeDelta.x))); } m_openingStatePrev = m_openingState; } m_countTimeState += Time.deltaTime; //了解ボタンの押下 if (m_isPressedOk) { m_bossImageAppearanceState = BossImageAppearanceStatus.LineUp; } //ボス画像が出現 BossImageAppear(); }
public Opening(string openedAsset, string closedAsset, string openDescription, string closedDescription, bool walkableWhenOpened = true, int apCost = DefaultDoorUseAPCost, OpeningStatus status = OpeningStatus.Closed) { Contract.Requires <ArgumentException>(!String.IsNullOrEmpty(closedAsset)); Contract.Requires <ArgumentException>(!String.IsNullOrEmpty(openedAsset)); this._status = status; APCost = apCost; OpenedAsset = openedAsset; ClosedAsset = closedAsset; WalkableOpened = walkableWhenOpened; OpenedDescription = openDescription; ClosedDescription = closedDescription; }
//---------------------------------------------------------------------------------------------------- /// <summary> /// 動作処理4 /// </summary> void MovingProcess4() { //初めて状態が変わった(個別設定) if (m_openingState != m_openingStatePrev) { Sign.SetActive(false); King.SetActive(true); Boss.SetActive(false); m_serifStatement = myOpeningData.sheets[m_serifNum].list[m_serifStatementNum++].sentence; m_openingStatePrev = m_openingState; } //セリフ処理 SerifProcess(); }
//---------------------------------------------------------------------------------------------------- /// <summary> /// 動作処理1 /// </summary> void MovingProcess1() { //初めて状態が変わった(個別設定) if (m_openingState != m_openingStatePrev) { Sign.SetActive(true); King.SetActive(false); Boss.SetActive(false); m_openingStatePrev = m_openingState; } m_countTimeState += Time.deltaTime; //看板に注目する時間を超えるor了解ボタンの押下 if (m_countTimeState >= m_timeToPayAttentionToSignboard || m_isPressedOk) { m_stateNum++; m_openingState = OpeningStatus.WaitForUserInput; } }
//---------------------------------------------------------------------------------------------------- /// <summary> /// セリフ処理 /// </summary> void SerifProcess() { SerifText.text = m_serifStatement.Substring(0, (int)(m_countTimeState * m_speedSpeech)); m_countTimeState += Time.deltaTime; //セリフの文が終了or了解ボタンの押下 if (SerifText.text.Length >= m_serifStatement.Length || m_isPressedOk) { SerifText.text = m_serifStatement; m_openingState = OpeningStatus.WaitForUserInput; //セリフの終了 if (m_serifStatementNum + 1 > myOpeningData.sheets[m_serifNum].list.Count) { //状態の変更 m_stateNum++; m_serifNum++; m_serifStatementNum = 0; } } }
//---------------------------------------------------------------------------------------------------- /// <summary> /// ユーザ入力を待つ処理 /// </summary> void WaitForUserInputProcess() { //初めて状態が変わった if (m_openingState != m_openingStatePrev) { OkImage.enabled = true; m_openingStatePrev = m_openingState; } m_countFlashingTime += Time.deltaTime; //点滅処理 if (m_countFlashingTime >= m_blinkingTime) { OkImage.enabled = !OkImage.enabled; m_countFlashingTime = 0; } //了解ボタンの押下 if (m_isPressedOk) { m_openingState = OpeningStatus.Moving; } }