SHA256
Initial Commit
This commit is contained in:
commit
44a22ae103
19 files changed
+772
No files matched your search
@@ -0,0 +1,73 @@
|
||||
using ADOFAIRenderer.Component;
|
||||
using MelonLoader;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace ADOFAIRenderer.UI
|
||||
{
|
||||
public class RenderButton : MonoBehaviour
|
||||
{
|
||||
[Header("Input Fields")]
|
||||
[SerializeField] private TMP_InputField targetFPSInput = null!;
|
||||
[SerializeField] private TMP_InputField videoFPSInput = null!;
|
||||
[SerializeField] private TMP_InputField renderWidthInput = null!;
|
||||
[SerializeField] private TMP_InputField renderHeightInput = null!;
|
||||
[SerializeField] private TMP_InputField bitrateInput = null!;
|
||||
|
||||
[Header("Dropdown")]
|
||||
[SerializeField] private TMP_Dropdown codecDropdown = null!;
|
||||
|
||||
private Button _buttonComponent = null!;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_buttonComponent = GetComponent<Button>();
|
||||
_buttonComponent.onClick.AddListener(OnClick);
|
||||
|
||||
RenderMod.FixEventSystem();
|
||||
}
|
||||
|
||||
public void OnClick()
|
||||
{
|
||||
if (IsAnyFieldEmpty()) return;
|
||||
Melon<RenderMod>.Logger.Msg($"레벨 로드: {RenderManager.LevelPath}");
|
||||
|
||||
double.TryParse(targetFPSInput.text, out var targetFPS);
|
||||
double.TryParse(videoFPSInput.text, out var videoFPS);
|
||||
int.TryParse(renderWidthInput.text, out var renderWidth);
|
||||
int.TryParse(renderHeightInput.text, out var renderHeight);
|
||||
int.TryParse(bitrateInput.text, out var bitrate);
|
||||
|
||||
var selectedCodecIndex = codecDropdown.value;
|
||||
var selectedCodecName = codecDropdown.options[selectedCodecIndex].text;
|
||||
|
||||
RenderManager.Configuration = new RenderManager.RenderSettings
|
||||
{
|
||||
TargetFPS = targetFPS,
|
||||
VideoFPS = videoFPS,
|
||||
RenderWidth = renderWidth,
|
||||
RenderHeight = renderHeight,
|
||||
Bitrate = bitrate,
|
||||
Codec = selectedCodecName.ToLower(),
|
||||
};
|
||||
|
||||
RenderManager.Instance.SetupGameScene();
|
||||
}
|
||||
|
||||
private bool IsAnyFieldEmpty()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(targetFPSInput.text)) return true;
|
||||
if (string.IsNullOrWhiteSpace(videoFPSInput.text)) return true;
|
||||
if (string.IsNullOrWhiteSpace(renderWidthInput.text)) return true;
|
||||
if (string.IsNullOrWhiteSpace(renderHeightInput.text)) return true;
|
||||
if (string.IsNullOrWhiteSpace(bitrateInput.text)) return true;
|
||||
|
||||
// 드롭다운은 기본적으로 항상 무언가 선택되어 있지만(0번 항목 등),
|
||||
// 만약 '선택 안함(-1)' 같은 예외 처리가 필요하다면 아래처럼 검사할 수 있습니다.
|
||||
if (codecDropdown.value < 0) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user