namespace Fusion.Addons.KCC { using System; using System.Collections.Generic; using UnityEngine; using Fusion; /// /// Used to update PlatformProcessor instances independently of their Object.IsInSimulation state. /// [DefaultExecutionOrder(PlatformProcessor.EXECUTION_ORDER)] public unsafe class PlatformProcessorUpdater : SimulationBehaviour { private HashSet _processors = new HashSet(); public void Register(PlatformProcessor processor) { _processors.Add(processor); } public void Unregister(PlatformProcessor processor) { _processors.Remove(processor); } public override void FixedUpdateNetwork() { foreach (PlatformProcessor processor in _processors) { try { processor.ProcessFixedUpdate(); } catch (Exception exception) { Debug.LogException(exception); } } } public override void Render() { foreach (PlatformProcessor processor in _processors) { try { processor.ProcessRender(); } catch (Exception exception) { Debug.LogException(exception); } } } } }