/// <summary> /// 隱藏Adv系統所有的可見項目,需另外注意隱藏後還必須釋放使用者輸入 /// </summary> public void StopAdvScene() { //因為Adv系統 Dialog Fadeout後 自動Inactive advTargetAlpha = 0; if (CanvasAdvStageObject.CanContrl) { advStage.CloseStage(); } if (IsEndToStopAdvBGM) { Fungus.FungusManager.Instance.MusicManager.StopMusic(); //PluginBridge.ResumeMainBgm(); } AdvSignals.DoAdvStopping(); }
IEnumerator Start() { submitButton = EventSystem.current.GetComponent <StandaloneInputModule>().submitButton; base.transform.position = new Vector3(0, 0, -1); //Make sure adv object's position Camera.main.orthographic = true; Debug.Log("Auto Set Main Camera to Orthographic"); BlockSignals.OnBlockEnd += (block) => { AdvSignals.DoAdvCheckFlowchartEnd(); }; if (CanvasAdvStageObject == null) { Debug.LogError("Adv Prefab not initialize"); yield break; } StopAdvScene(); ExitAllCanvas(); yield return(null); //Wait for other plugin setup OnLanguageChange(AdvUserSettingManager.Instance.AdvLanguage); }
/// <summary> /// 隱藏與顯示皆由一個 Alpha參數控制,因此以Update監控Alpha參數 /// </summary> void UpdateUI() { if (CanvasAdvStageObject == null) { Debug.LogError("Adv Prefab not initialize"); return; } if (fadeDuration <= 0f) { //No Fade Animation , so assign value immediately AssignAllCanvasAlpha(advTargetAlpha); } else { float delta = (1f / fadeDuration) * Time.deltaTime; float alpha = Mathf.MoveTowards(CanvasAdvStageObject.Alpha, advTargetAlpha, delta); AssignAllCanvasAlpha(alpha); if (alpha <= 0f) { // once invisible , set canvas uninteractivable ExitAllCanvas(); AdvSignals.DoAdvStopped(); } } if (!isUIShow) { //ESC Buttom to Display UI CanvasAdvMenu.Alpha = 0; CanvasAdvSystem.Alpha = 0; CanvasAdvDialog.Alpha = 0; } }