fix: 修复隐藏状态下修改装备装备再次显示的bug

This commit is contained in:
m0_75251201
2025-11-01 23:26:25 +08:00
parent 5cec8711dd
commit b3bf4a9252
40 changed files with 364 additions and 26 deletions

View File

@@ -1,4 +1,5 @@

using HarmonyLib;
using UnityEngine;
using Object = UnityEngine.Object; // 确保引入 UnityEngine 命名空间
@@ -6,33 +7,46 @@ namespace HideCharacter
{
public class ModBehaviour : Duckov.Modding.ModBehaviour
{
private GameObject? _hideCharacterManagerGameObject=null;
public static HideCharacterComponent? hideHideCharacterManager=null;
private const string CHILD_GAMEOBJECT_NAME = "HideCharacterManager";
public string MOD_ID = "HideCharacter";
private Harmony _harmony;
protected override void OnAfterSetup()
{
AddHideComponent();
if (_harmony == null)
{
_harmony=new Harmony(MOD_ID);
_harmony.PatchAll();
}
}
protected override void OnBeforeDeactivate()
{
RemoveHideComponent();
if (_harmony != null)
{
_harmony.UnpatchAll(MOD_ID);
_harmony = null;
}
}
private void AddHideComponent()
{
var childTransform = this.transform.Find(CHILD_GAMEOBJECT_NAME);
if (childTransform) return;
_hideCharacterManagerGameObject = new GameObject(CHILD_GAMEOBJECT_NAME);
_hideCharacterManagerGameObject.transform.SetParent(this.transform);
_hideCharacterManagerGameObject.AddComponent<HideCharacterComponent>();
var hideCharacterManagerGameObject = new GameObject(CHILD_GAMEOBJECT_NAME);
hideCharacterManagerGameObject.transform.SetParent(this.transform);
hideHideCharacterManager = hideCharacterManagerGameObject.AddComponent<HideCharacterComponent>();
}
private void RemoveHideComponent()
{
if (_hideCharacterManagerGameObject)
Destroy(_hideCharacterManagerGameObject);
if (hideHideCharacterManager)
Destroy(hideHideCharacterManager?.gameObject);
}
}
}