Unity3d には明示的な同期ロックがないことを知りました (http://answers.unity3d.com/questions/284228/how-to-synchronize-in-unity.html#answer-284522) が、私のゲームでは行う必要がありますこれ。
両方のエージェント (パイロット A とパイロット B) が飛行機の速度を変更する必要があります。擬似コードは次のとおりです。
if (speed < threshold)
speed += 1
ロックがなく、現在の速度: 速度 = しきい値 - 1 の場合。パイロット A がチェックして速度がしきい値未満であることを確認すると、速度を増加させます。彼がそれを行っているとき、パイロット B はチェックし、速度 < しきい値も確認し、それを再度インクリメントします。そのため、速度が大幅に増加し、2 倍になり、最終的に >= しきい値になる可能性があります。飛行機が墜落します。
Unity がこれをサポートしていないことに驚きました。回避策は何ですか?
ありがとう。