using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using WI; using RenderHeads.Media.AVProMovieCapture; using System.IO; using SFB; public class Panel_ToolBar : PanelBase { private Button Button_TopView; private Button Button_QuarterView; private Button Button_SholuderView; private Button Button_DashBoard; private Button Button_CustomView; private Button Button_Minimap; private Button Button_Record; private Image Image_Record_Play; private Button Button_Capture; private Button Button_InnerWall; private CaptureBase capture; public Action onClickDashBoard; public override void AfterAwake() { Button_TopView.onClick.AddListener(OnClickTopView); Button_QuarterView.onClick.AddListener(OnClickQuaterView); Button_SholuderView.onClick.AddListener(OnClickShoulderView); Button_DashBoard.onClick.AddListener(OnClickDashBoard); Button_CustomView.onClick.AddListener(OnClickCustomView); Button_Minimap.onClick.AddListener(OnClickMinimap); Button_Record.onClick.AddListener(OnClickRecord); Button_Capture.onClick.AddListener(OnClickCapture); Button_InnerWall.onClick.AddListener(OnClickInnerWall); RecordSetting(); CaptureSetting(); } private void RecordSetting() { var filePath = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos)); capture = GameObject.FindObjectOfType(); capture.CameraRenderResolution = CaptureBase.Resolution.Custom; capture.CompletedFileWritingAction += OnCompleted; } private void CaptureSetting() { var filePath = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)); } private void OnCompleted(FileWritingHandler handler) { var sourcePath = handler.FinalPath; var destFilePath = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "mp4"); if (!string.IsNullOrEmpty(destFilePath)) { File.Move(sourcePath, destFilePath); } else { File.Delete(sourcePath); } } private void OnClickInnerWall() { Debug.Log("³»º®"); } private void OnClickCapture() { var destFilePath = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "png"); if (!string.IsNullOrEmpty(destFilePath)) { ScreenCapture.CaptureScreenshot(destFilePath); } } private bool isRecordClick = false; private void OnClickRecord() { isRecordClick = !isRecordClick; if (isRecordClick) { StartCoroutine(PlayRecord()); capture.CameraRenderCustomResolution = new Vector2(UnityEngine.Screen.width, UnityEngine.Screen.height); capture.StartCapture(); } else { StopAllCoroutines(); capture.StopCapture(); } } IEnumerator PlayRecord() { this.Image_Record_Play.gameObject.SetActive(false); //Button_Record.image.color = isRecordClick ? ColorUtil.FromHex("#32A3FF") : ColorUtil.FromHex("FFFFFF"); while (isRecordClick) { this.Image_Record_Play.gameObject.SetActive(true); yield return new WaitForSeconds(0.5f); this.Image_Record_Play.gameObject.SetActive(false); yield return new WaitForSeconds(0.5f); } } private void OnClickMinimap() { Debug.Log("MiniMap"); } private void OnClickCustomView() { Debug.Log("CustomView"); } private void OnClickDashBoard() { onClickDashBoard?.Invoke(); } private void OnClickShoulderView() { Debug.Log("ShoulderView"); } private void OnClickQuaterView() { Debug.Log("QuaterView"); } private void OnClickTopView() { Debug.Log("TopView"); } }