我有两个文件,class1.cs和prologue.cs。在序言中有一个公开的布尔语“ Panic”。
序言
public partial class Prologue : Script{
public bool Panic;
public void PrologueMission(){ //Called when the script starts
Panic = true;
}
在class1.cs中
void Update10(){ //Runs this function every 10 seconds
Prologue prologue = new Prologue(); //prologue.cs
if (prologue.Panic) {
//code...
}
}
问题是,bool Panic在Class1.cs中仍然为false,因此我创建了一个log方法来查找正在发生的事情。恐慌在Prologue.cs中变为true,但在Class1.cs中保持false。
我尝试了其他方法,例如静态变量和返回true / false的方法,但似乎都无效,因此我被困在这里。
简而言之:为什么在Prologue.cs中将bool Panic设置为true,但在Class1.cs中始终保持false。
希望您也可以解释一下此方法不起作用的原因,但是希望您能回答任何问题!
编辑:日志:
Prologue: .Panic:True //Set to true in Prologue.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
Prologue: .Panic:True //Set to true in Prologue.cs again
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
prologue.Panic: False //False in class1.cs
最佳答案
仅通过调用Panic
将PrologueMission
设置为true。
您没有打电话。
void Update10(){ //Runs this function every 10 seconds
Prologue prologue = new Prologue(); //prologue.cs
prologue.PrologueMission(); // <<<<
if (prologue.Panic) {
//code...
}
}
如果希望最初进行设置,则必须在
Prologue
的构造函数中进行设置public partial class Prologue : Script{
public bool Panic;
public Prologue()
{
Panic = true;
}
//...
}
与以下内容相同:
public partial class Prologue : Script{
public bool Panic = true;
// ...
}
根据评论:您将不得不在更新方法之外存储Prologe实例:
public class Class1
{
Prologue myPrologue = new Prologue();
//...
void AnotherMethod()
{
myPrologue.PrologueMission();
}
//...
void Update10()
{
if (myPrologue.Panic)
{
//code...
}
}
}