From e1cc0b6fbd10826096ba218b3e7c4db110ff8cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albin=20Cor=C3=A9n?= <2108U9@gmail.com> Date: Mon, 2 Apr 2018 19:25:14 +0200 Subject: [PATCH] Fixed an issue causing new objects to not have their SyncedVars inited --- MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs index ab890eb..b0fadac 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs @@ -206,10 +206,12 @@ namespace MLAPI.MonoBehaviours.Core internal List syncedFieldTypes = new List(); private List syncedFieldValues = new List(); private List syncedVarHooks = new List(); + private bool syncVarInit = false; //A dirty field is a field that's not synced. private bool[] dirtyFields; internal void SyncVarInit() { + syncVarInit = true; FieldInfo[] sortedFields = GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.Instance).OrderBy(x => x.Name).ToArray(); for (byte i = 0; i < sortedFields.Length; i++) { @@ -453,6 +455,8 @@ namespace MLAPI.MonoBehaviours.Core private float lastSyncTime = 0f; internal void SyncVarUpdate() { + if (!syncVarInit) + SyncVarInit(); SetDirtyness(); if(Time.time - lastSyncTime >= SyncVarSyncDelay) {