访问非静态成员需要对象引用

时间:2014-12-23 21:54:28

标签: c# unity3d

好的,所以我不太擅长C#编程,所以这可能是一个愚蠢的问题。 我有一个由别人制作的游戏,他有一个口号的东西。我将口号改为随机挑选的标语清单,不再使其静止。

using UnityEngine;
using System.Collections;

public class GameVersion : MonoBehaviour {

public const float AsFloat = 0.6f;
public const string AsString = "alpha v0.2.5";
public string Slogan = randomSlogan[new Random().Next(0,randomSlogan.Length) ];
string randomSlogan = {
    "3000",
    "bananas",
    "now with sand"
};

}

但是,我收到错误"访问非静态成员' Gameversion.Slogan'"'"''''' >

    GUI.Box(pos,"");
    GUILayout.BeginArea(pos);
    //Game version and slogan
    GUIStyle version = new GUIStyle(GUI.skin.label);
    version.fontSize = 60;
    version.fontStyle = FontStyle.Bold;
    GUILayout.Label(GameVersion.AsString,version);
    GUILayout.Label(GameVersion.Slogan); //Right here.

我已经看到了同样问题的其他结果,但我一直很难将它放入我的代码中。谁能想出一个适合这里的解决方案?谢谢!

此外,对不起,如果我发布的代码很少或很多!

1 个答案:

答案 0 :(得分:0)

您需要使您的类静态或创建GameVersion类的实例:

GameVersion instance = new GameVersion();
GUILayout.Label(instance.Slogan);

根据我的经验,制作实例通常更可取。