BepInEx 中自定义 MonoBehavior 如何像 Unity 原生组件一样工作?
在 Unity 中,所有的 MonoBehavior 都必须附加到一个 GameObject 上才能被执行和渲染。如果你在 BepInEx 中只有 Monobehavior 而没有 GameObject,那么你需要创建一个空的 GameObject,并将你的 Monobehavior 附加到它上面。
你可以在 BepInEx 的 Awake() 方法中创建一个空的 GameObject,并将你的 Monobehavior 附加到它上面。例如:
public class YourScript : MonoBehaviour
{
private void Awake()
{
GameObject emptyGameObject = new GameObject('YourGameObject');
YourMonobehavior yourMonobehavior = emptyGameObject.AddComponent<YourMonobehavior>();
}
}
然后,你可以在 YourMonobehavior 中定义外观、绘制和位置等功能。请注意,你需要在 OnGUI() 方法中实现你的绘制逻辑,并使用 Transform 组件来控制位置。
public class YourMonobehavior : MonoBehaviour
{
private void OnGUI()
{
// 在这里实现你的绘制逻辑
}
private void Update()
{
// 在这里实现你的位置控制逻辑
}
}
通过这种方式,你可以像使用 Unity 游戏自带的 Monobehavior 一样使用你自定义的 Monobehavior,并为它们定义外观、绘制和位置等功能。
原文地址: https://www.cveoy.top/t/topic/o8dH 著作权归作者所有。请勿转载和采集!