SHA256
43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
using HarmonyLib;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace ADOFAIRenderer.Patch.ClassPatch
|
|
{
|
|
[HarmonyPatch(typeof(scnEditor))]
|
|
// ReSharper disable once InconsistentNaming
|
|
public static class scnEditorPatch
|
|
{
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch("Start")]
|
|
// ReSharper disable once InconsistentNaming
|
|
public static void AddButtonRender(scnEditor __instance)
|
|
{
|
|
var cloneTarget = __instance.buttonExit!.gameObject;
|
|
var buttonContainer = cloneTarget.transform.parent!;
|
|
|
|
var buttonObj = Object.Instantiate(cloneTarget, buttonContainer)!;
|
|
buttonObj.name = "buttonRender";
|
|
|
|
var button = buttonObj.GetComponent<Button>()!;
|
|
// Clear persistent and non-persistent listeners from the original button
|
|
button.onClick = new Button.ButtonClickedEvent();
|
|
button.onClick.AddListener(RenderMod.StartRender);
|
|
|
|
// The button root has an Image component for the background (rounded box).
|
|
// We want to change the icon sprite, which is on a child GameObject.
|
|
var images = buttonObj.GetComponentsInChildren<Image>();
|
|
if (images.Length <= 1) return;
|
|
|
|
// ReSharper disable once Unity.UnknownResource
|
|
// images[0] is the background on the root, images[1] is the icon on the child
|
|
var sprite = Resources.Load<Sprite>("LevelEditor/LevelEvents/MoveCamera");
|
|
if (sprite != null)
|
|
{
|
|
var iconImage = images[1];
|
|
iconImage.sprite = sprite;
|
|
iconImage.rectTransform.sizeDelta = new Vector2(24, 24);
|
|
}
|
|
}
|
|
}
|
|
} |