// Chromecast 按鈕事件 public void ChromecastButton() { if (!IsChromecast) { IsChromecast = true; HiddenStatus = 4; HiddenCounter = 0; Navbar.gameObject.SetActive(false); Footer.gameObject.SetActive(false); #region 暫停播放 MovieManger movieM = MoviePlane.GetComponent <MovieManger>(); movieM.movie.Stop(); movieM.soundSource.Stop(); MoviePlane.GetComponent <RawImage>().color = Color.black; movieM.ResetTime(); this.GetComponent <MovieTimeLineEvent>().enabled = true; #endregion // 任務二開始 counter.UpgradeToNextLevel(1); } }
void Update() { switch (HiddenStatus) { case 0: HiddenCounter += Time.deltaTime; // 判斷是否閒適夠久,如果夠久,就開始縮起來 if (HiddenCounter >= HiddenTime) { HiddenCounter = 0; HiddenStatus = 1; // 從頭到目標的速度 NavbarMoveSpeed = NavbarEndPosY - Navbar.localPosition.y; FooterMoveSpeed = FooterEndPosY - Footer.localPosition.y; } break; case 1: HiddenCounter += Time.deltaTime; // 判斷隱藏的條件 if (HiddenCounter >= HiddenProgress) { HiddenStatus = 2; HiddenCounter = 0; Navbar.localPosition = new Vector3(0, NavbarEndPosY, 0); Footer.localPosition = new Vector3(0, FooterEndPosY, 0); } else { Navbar.localPosition += new Vector3(0, NavbarMoveSpeed, 0) / HiddenProgress * Time.deltaTime; Footer.localPosition += new Vector3(0, FooterMoveSpeed, 0) / HiddenProgress * Time.deltaTime; } break; case 2: // 隱藏,所以不用動作 break; case 3: HiddenCounter += Time.deltaTime; if (HiddenCounter >= HiddenProgress) { HiddenStatus = 0; HiddenCounter = 0; Navbar.localPosition = new Vector3(0, NavStartPosY, 0); Footer.localPosition = new Vector3(0, FooterStartPosY, 0); } else { Navbar.localPosition -= new Vector3(0, NavbarMoveSpeed, 0) / HiddenProgress * Time.deltaTime; Footer.localPosition -= new Vector3(0, FooterMoveSpeed, 0) / HiddenProgress * Time.deltaTime; } break; case 4: HiddenCounter += Time.deltaTime; // 這部分是做當要 chromecast 的時候,會把整個縮小的流程 if (HiddenCounter >= ChromecastCount) { HiddenStatus = 5; HiddenCounter = 0; MoviePlane.localPosition = ChromecastPos; MoviePlane.sizeDelta = ChromecastSize; #region 重新播放 MovieManger movieM = MoviePlane.GetComponent <MovieManger>(); movieM.movie.Play(); movieM.soundSource.Play(); MoviePlane.GetComponent <RawImage>().color = Color.white; // 時間歸零 movieM.ResetTime(); #endregion } else { Vector3 diffPos = ChromecastPos - CurrentPos; Vector2 diffSize = ChromecastSize - Currentsize; MoviePlane.anchoredPosition3D = diffPos * HiddenCounter / ChromecastCount + CurrentPos; MoviePlane.sizeDelta = diffSize * HiddenCounter / ChromecastCount + Currentsize; } break; } }