37 lines
858 B
C#
37 lines
858 B
C#
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace Cielonos.MainGame
|
|
{
|
|
/// <summary>
|
|
/// 子模块通用接口。允许子模块通过继承其他类(如动作播放器)来避免单继承限制。
|
|
/// </summary>
|
|
public interface ISubmodule<T>
|
|
{
|
|
T Owner { get; set; }
|
|
}
|
|
|
|
[HideInEditorMode]
|
|
public class SubmoduleBase<T> : ISubmodule<T>
|
|
{
|
|
[HideInInspector]
|
|
public T owner;
|
|
|
|
// 显式接口实现以满足 ISubmodule 接口,保持原有 public 字段完整兼容性
|
|
T ISubmodule<T>.Owner
|
|
{
|
|
get => owner;
|
|
set => owner = value;
|
|
}
|
|
|
|
public SubmoduleBase(T owner)
|
|
{
|
|
this.owner = owner;
|
|
}
|
|
|
|
public void SetOwner(T newOwner)
|
|
{
|
|
this.owner = newOwner;
|
|
}
|
|
}
|
|
} |