fix: 修复隐藏状态下修改装备装备再次显示的bug
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user