我了解到在 Unity3d 中没有明确的同步锁定 (http://answers.unity3d.com/questions/284228/how-to-synchronize-in-unity.html#answer-284522) 但在我的游戏中我需要这样做这个。
两个代理(飞行员 A 和飞行员 B)都需要修改飞机的速度。伪代码是:
if (speed < threshold)
speed += 1
如果没有锁,并且当前速度:speed=threshold-1。当飞行员 A 检查并看到速度 < 阈值时,他会增加它。当他这样做时,飞行员 B 检查,他也看到速度 < 阈值,他再次增加它。所以速度可能会变得疯狂,增加两次并最终> =阈值。飞机会坠毁。
我知道这只是一个简单的同步示例,令 Unity 不支持这一点感到惊讶。解决方法是什么?
谢谢。