在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录