統一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