c# - 有没有办法在Unity中使用不同的脚本函数而不使用gameObject?

标签 c# unity-game-engine

我制作了一个 C# 文件,其中包含 CommonUtils 类中的 utils 函数。我想使用不同 c# 文件中的这些函数。有没有一种方法可以在不使用游戏对象的情况下访问或导入它们?或者我只需要抛出一个空的游戏对象,向其中添加 util 脚本并访问 gameObject,然后访问 CommonUtils 脚本?

最佳答案

您需要一个静态类,它实现您将在其他类中使用的公共(public)静态函数。

以下是任何其他类都可以用来加载场景的 SceneLoader 类示例:

public static class SceneLoader
{
    // Load scene by name
    public static void LoadScene(string sceneName)
    {
        ...
    }

    // Load scene by build index
    public static void LoadScene(int sceneBuildIndex)
    {
        ...
    }
}

然后,您可以使用其他类中的此类中的函数,如下所示:

SceneLoader.LoadScene("my scene");

同样的原则也适用于您的 CommonUtils 类。

如果由于某种原因您需要此类继承 Monobehaviour,请考虑应用 Singleton模式以访问实例,而无需每次都引用游戏对象。

关于c# - 有没有办法在Unity中使用不同的脚本函数而不使用gameObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76526569/

相关文章:

c# - WP7 同步网页请求

unity-game-engine - 如何加载不知道 Assets 名称的 Assets 包?

c# - 如何在 Unity 中通过 X 坐标将游戏对象居中?

c# - 减小位图图像的物理尺寸?

c# - Ajax.ActionLink 和确认对话框

c# - 在 ASP.NET MVC3 中验证表单时,有什么方法可以忽略某些属性(在 POCO 上)?

android - 在插件中使用 AAssetManager_fromJava 不直接从 Java VM 调用(从 Unity 调用)

c# - 等待某事发生——异步或同步模型?

c# - 抓取和放下物体

unity-game-engine - Unity 语音聊天 2017.2