void OnStepUpdate(InputData[] allInputData) { CheckGameObjectsSafeMap(); TrueSyncInput.GetAllInputs().Clear(); if (generalBehaviours != null) { foreach (TrueSyncManagedBehaviour bh in generalBehaviours) { if (bh != null && !bh.disabled) { bh.OnPreSyncedUpdate(); instance.scheduler.UpdateAllCoroutines(); } } } foreach (InputData playerInputData in allInputData) { if (behaviorsByPlayer.ContainsKey(playerInputData.ownerID)) { foreach (TrueSyncManagedBehaviour bh in behaviorsByPlayer[playerInputData.ownerID]) { if (bh != null && !bh.disabled) { bh.OnPreSyncedUpdate(); instance.scheduler.UpdateAllCoroutines(); } } } } TrueSyncInput.GetAllInputs().AddRange(allInputData); TrueSyncInput.CurrentSimulationData = null; if (generalBehaviours != null) { foreach (TrueSyncManagedBehaviour bh in generalBehaviours) { if (bh != null && !bh.disabled) { bh.OnSyncedUpdate(); instance.scheduler.UpdateAllCoroutines(); } } } foreach (InputData playerInputData in allInputData) { if (behaviorsByPlayer.ContainsKey(playerInputData.ownerID)) { TrueSyncInput.CurrentSimulationData = playerInputData; foreach (TrueSyncManagedBehaviour bh in behaviorsByPlayer[playerInputData.ownerID]) { if (bh != null && !bh.disabled) { bh.OnSyncedUpdate(); instance.scheduler.UpdateAllCoroutines(); } } } TrueSyncInput.CurrentSimulationData = null; } CheckQueuedBehaviours(); }