统一c#全局结构变量对待像本地感到惊讶,但需要寻求建议。在START:结构化变量传递给方法变为零?
struct ST{ public float f; public bool b_toProcess;}ST st;
st = new ST(){b_toProcess = true};
在更新
:
if(st.b_toProcess) process(st);
在相同的.cs地方:
process(ST st){
Debug.Log("f:" + st.f); // 0
st.f += 0.1f; if(st.f > 5){b_toProcess = false;}
Debug.Log("f:" + st.f); // 0.1f
}
但运行过程永无止境!!!! 日志显示f在每次迭代开始和随后的迭代中始终为0,并且在+ =之后为0.1f,因此永远不会大于5.通过正确,它应该在每次迭代中累积。 问题是:在每次迭代中,st.f总是如何来到0。只有局部变量会被这样处理,但是这是作为一个结构变量传入的。
请some1指教。 谢谢。
你应该阅读:https://msdn.microsoft.com/en-us/library/ aa664472%28v = vs.71%29.aspx – ach