Files
ChunilENG/Assets/WorkSpace/Personal/JYM/Panel_ToolBar.cs
2025-03-10 16:42:23 +09:00

150 lines
4.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using WI;
using System.Windows.Forms;
using RenderHeads.Media.AVProMovieCapture;
using System.IO;
public class Panel_ToolBar : PanelBase
{
private UnityEngine.UI.Button Button_TopView;
private UnityEngine.UI.Button Button_QuarterView;
private UnityEngine.UI.Button Button_SholuderView;
private UnityEngine.UI.Button Button_DashBoard;
private UnityEngine.UI.Button Button_CustomView;
private UnityEngine.UI.Button Button_Minimap;
private UnityEngine.UI.Button Button_Record;
private UnityEngine.UI.Image Image_Record_Play;
private UnityEngine.UI.Button Button_Capture;
private UnityEngine.UI.Button Button_InnerWall;
private CaptureBase capture;
private SaveFileDialog record_saveFileDialog;
private SaveFileDialog capture_saveFileDialog;
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()
{
record_saveFileDialog = new();
var filePath = Path.GetFullPath(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyVideos));
record_saveFileDialog.InitialDirectory = filePath;
record_saveFileDialog.Filter = "mp4 files (*.mp4) |*.mp4|All files (*.*)|*.*";
capture = GameObject.FindObjectOfType<CaptureBase>();
capture.CameraRenderResolution = CaptureBase.Resolution.Custom;
capture.CompletedFileWritingAction += OnCompleted;
}
private void CaptureSetting()
{
capture_saveFileDialog = new();
var filePath = Path.GetFullPath(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyPictures));
capture_saveFileDialog.InitialDirectory = filePath;
capture_saveFileDialog.Filter = "jpg files (*.jpg) |*.jpg|png files (*.png) |*.jpg|All files (*.*)|*.*";
}
private void OnCompleted(FileWritingHandler handler)
{
var path = handler.FinalPath;
if (record_saveFileDialog.ShowDialog() == DialogResult.OK)
{
File.Move(path, record_saveFileDialog.FileName);
}
else
{
File.Delete(path);
}
}
private void OnClickInnerWall()
{
Debug.Log("³»º®");
}
private void OnClickCapture()
{
if (record_saveFileDialog.ShowDialog() == DialogResult.OK)
{
ScreenCapture.CaptureScreenshot(record_saveFileDialog.FileName);
}
}
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()
{
Debug.Log("DashBorad");
}
private void OnClickShoulderView()
{
Debug.Log("ShoulderView");
}
private void OnClickQuaterView()
{
Debug.Log("QuaterView");
}
private void OnClickTopView()
{
Debug.Log("TopView");
}
}