C# 使类返回其实例而不带函数或变量

标签 c# function unity-game-engine single-instance

所以我在 Unity 中使用具有单个实例的类已经有一段时间了,通常会这样做:

class PublicThings {
    public static PublicThings I; // instance of this class
    public int Score;
    void Start { I = GetComponent<PublicThings>(); }
}

用法:PublicThings.I.Score = 10;

效果非常好。但是,我很好奇是否可以返回类的实例,而不必在类后键入 .I

所以基本上它看起来是这样的:

PublicThings.Score = 10;

This question似乎它是相关的,但我很难让它工作。

这可能吗?如果是的话,该怎么做?

最佳答案

三个选项可以完成您想做的事情:

  1. 在 PublicThings 类中使用 static 关键字创建静态属性/字段
  2. 创建 ScriptableObject并将其附加到调用它的项目 ( video tutorial )
  3. 利用 Singleton Pattern (我建议在尝试其他两种方法之前避免使用此方法)

另外值得注意的是,单例模式并不一定能解决您的问题。您仍然需要调用类似 PublicThings.instance.Score 的内容。

希望这有帮助。

关于C# 使类返回其实例而不带函数或变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61734575/

相关文章:

c# - 尝试移动时*有时*上传仍在使用的文件

c# - 使用 GetType() 检查其类型后,将泛型类型转换为引用类型。如何?

python - `type` 真的是一个函数吗?

c# - methods() 应该放在哪里?

javascript - ;(功能() {})();在 JavaScript 中

c# - 如何让一个物体始终位于另一个物体的前面?

c# - C# 中的简写条件类似于 SQL 'in' 关键字

c# - 无法加载文件或程序集 'Newtonsoft.Json' 或其依赖项之一

c# - 在 C# 中循环 SimpleJSON 数组

unity-game-engine - 与重复的场景共享相同的导航网格