C# 如何理解这段C代码?

C# 如何理解这段C代码?,c#,mono,C#,Mono,我希望能够理解,这样我就可以根据这段代码编写自己的脚本。这只是一个包含两个方法的类:我认为它们所做的非常清楚。以下是如何使用它们: public class LevelManager : MonoBehaviour { public void LoadLevel (string name) { Debug.Log("Level Loaded for" + name); Application.LoadLevel (name); }

我希望能够理解,这样我就可以根据这段代码编写自己的脚本。

这只是一个包含两个方法的类:我认为它们所做的非常清楚。以下是如何使用它们:

public class LevelManager : MonoBehaviour 
{
    public void LoadLevel (string name)
    {
          Debug.Log("Level Loaded for" + name);
          Application.LoadLevel (name);
    }

    public void QuitLevel ()  
    {
          Debug.Log("Request To Exit Game");
          Application.Quit();
    }
}

public void LoadLevelstring name中的string name部分是传递给方法的参数,请参见此处命名的注释,该注释在方法内部使用。debug.logis用于写入调试器的输出。

我过去使用过C和Unity,因此我将尽力解释代码的每个部分的功能

首先,

LevelManager lvlMgr = new LevelManager();
string lvlName = "Level1";
// To load the level.
lvlMgr.LoadLevel(lvlMgr); // HERE.
// To quit the level.
lvlMgr.QuitLevel();
这是类名和脚本名

第二,

public class LevelManager : MonoBehaviour
LoadLevel方法接受一个字符串变量并将其传递给Debug.Log&Application.LoadLevel。加载级别将加载统一中具有特定名称的级别,例如级别1

public void LoadLevel (string name)  
{
    Debug.Log("Level Loaded for" + name);
    Application.LoadLevel (name);
}
此方法不接受任何变量,用于退出级别。 这两种方法中的Debug.Log方法都用于通知您每个方法在Unity的控制台窗口中执行的操作。 Application.Quit和Application.LoadLevel都是Unity API方法

因为该类是一个公共类,所以可以在Unity脚本中创建一个新的LevelManager对象,并使用这两种方法

比如说 LevelManager lvlManager=新的LevelManager; 这将创建一个新的级别管理器对象,并允许您使用LoadLevel和QuitLevel方法


作为记录,Unity中的new关键字不应该使用,但它仍然有效。

您不完全理解哪一部分?下次请写一个更好的标题,我很抱歉,我是个新手,所以我想输入一个空行,字符串名就在public void LoadLevelIdk之后如何使用OSF yetDebug.Log;或Debug.Log\n;。取决于logger.faflo 10,LevelManager已经是预设值了吗?我只是对字符串感到困惑,它在做什么?哦,好吧,我想我有点抱歉,我没有读完你的回复LevelManager lvlMgr=new LevelManager;新的是什么意思?它意味着什么?它意味着LevelManager是一个类,因此在您运行的代码中,您必须实例化该类的对象才能调用该类中包含的方法。旧的关键字是什么?。他们之间有什么区别吗,哦,好的,字符串名告诉它接受任何字符串,它隐含的?,或者名称是一个预设?,很抱歉这么麻烦:这不是一个麻烦,我相信如果你在Unity中运行代码,它会要求你使用AddComponent方法。是的,字符串名是parameter。参数将传递给大括号内的两个方法。所以是的,它将接受您放入LoadLevel的任何字符串。例如,LoadLevelLevel 1将加载Unity assets文件夹中的Level 1。这是AddComponent方法:public void LoadLevel string name string Level1,哦,好吧,如果我更改了名称,它不会接受任何字符串,那么只对我分配给它的特定名称进行修改?这个脚本只适用于将我的游戏加载到我希望它加载的级别?对,或者它还能做什么?如果你打算在另一个脚本中使用这个方法,例如:LvlManager.loadlevellevel1;您可以删除public、void和string关键字。引号中的级别1表示上述代码中的名称。是的,你是对的。如果您更改名称,它将只接受您分配给它的字符串。它只能加载和退出级别。
public void QuitLevel ()  
{
    Debug.Log("Request To Exit Game");
    Application.Quit();
}