Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与++;操作人员_C#_Unity3d_Syntax_Logic_Operators - Fatal编程技术网

C# 与++;操作人员

C# 与++;操作人员,c#,unity3d,syntax,logic,operators,C#,Unity3d,Syntax,Logic,Operators,每次调用LevelChange函数时,我都试图将1添加到变量levelname中。但是,每次调用它时,它都会将值重置为1,就像最初在代码开头设置的值一样。我习惯C++,而且很困惑。这段代码有点草率,因为我尝试了很多方法来解决这个问题。任何帮助都将不胜感激。 缺少一个括号,因为出于某种原因,我无法使这一行进入代码块 public class NextLevel : MonoBehaviour { int levelname = 1; int newlevelname; st

每次调用LevelChange函数时,我都试图将1添加到变量levelname中。但是,每次调用它时,它都会将值重置为1,就像最初在代码开头设置的值一样。我习惯C++,而且很困惑。这段代码有点草率,因为我尝试了很多方法来解决这个问题。任何帮助都将不胜感激。 缺少一个括号,因为出于某种原因,我无法使这一行进入代码块

public class NextLevel : MonoBehaviour {
    int levelname = 1;
    int newlevelname;
    string levelnameS;

   void LevelChange()
   {
       levelname++; 
       newlevelname = levelname;
       string levelnameS = newlevelname.ToString(); //Converts newlevelname which is an int value to a string
       Debug.Log(levelnameS); //prints to the console

       SceneManager.LoadScene(levelnameS); //changes scene based on the level name. In this case its a number because thats what the levels are named.
       Debug.Log(levelname);       
   }

   void Update()
   {       
       if (Input.GetKeyDown(KeyCode.Return))
       {            
           LevelChange(); //calls the level change function                  
       }
   }
}

使用
公共静态int-levelname=1

使用公共静态int-levelname=1代替
int-levelname=1

实例属性不是
int-levelname=1

levelname
。类
NextLevel
的每个实例都有自己的值。因此,如果每次创建
NextLevel
的新实例并调用
Update
count,则计数始终从1开始


您可以将
levelname
切换到静态属性,或者始终使用类
NextLevel
的一个实例
levelname
是实例属性。类
NextLevel
的每个实例都有自己的值。因此,如果每次创建
NextLevel
的新实例并调用
Update
count,则计数始终从1开始



您可以将
levelname
切换到static属性,或始终使用类
NextLevel

的一个实例,该类的实例保存在何处?@visualincent它是事件处理程序对象的一个组件。当涉及到从一个级别切换到另一个级别时,它会起作用,但是值不会上升超过一次。这回答了你的问题吗?我不确定你在问什么。那么你的问题很可能是每次你进入一个新的级别时都会创建一个新的实例。采纳其他人的建议,将变量
设置为静态
@visualincent谢谢!没问题。您可以在上阅读有关
static
的更多信息。该类的实例存放在何处?@visualincent是事件处理程序对象的一个组件。当涉及到从一个级别切换到另一个级别时,它会起作用,但是值不会上升超过一次。这回答了你的问题吗?我不确定你在问什么。那么你的问题很可能是每次你进入一个新的级别时都会创建一个新的实例。采纳其他人的建议,将变量
设置为静态
@visualincent谢谢!没问题。您可以在上阅读更多关于
static
。我解决了这个问题,但只是为了将来,我如何仅使用一个NextLevel实例?@user3103529我不知道如何创建和使用对象类型
NextLevel
,示例代码太少了。但是阅读关于静态成员和实例成员之间的关系,使用静态成员有一些必要,例如,如果您想要多个类的实例,静态成员对每个实例总是具有相同的值..我解决了这个问题,但只是为了将来,我如何只使用一个NextLevel实例?@user3103529我不知道如何创建和使用对象类型
NextLevel
,示例代码太少了。但是阅读关于静态成员和实例成员之间的关系,使用静态成员有一些必要。例如,如果您想要多个类的实例,静态成员对每个实例总是具有相同的值。这将有助于其他人。作为一般规则,您真的不应该在工程软件中使用静态或全局。随着时间的推移,尝试建立您的基本软件工程技能!这将有助于其他人,而不是在工程软件中使用静态或全局。随着时间的推移,尝试建立您的基本软件工程技能!