diff --git a/MLAPI/Attributes/BinaryIgnore.cs b/MLAPI/Attributes/BinaryIgnore.cs
new file mode 100644
index 0000000..01eca65
--- /dev/null
+++ b/MLAPI/Attributes/BinaryIgnore.cs
@@ -0,0 +1,13 @@
+using System;
+
+namespace MLAPI.Attributes
+{
+ ///
+ /// The attribute to use for variables that should be automatically. replicated from Server to Client.
+ ///
+ [AttributeUsage(AttributeTargets.Field)]
+ public class BinaryIgnore : Attribute
+ {
+
+ }
+}
diff --git a/MLAPI/MLAPI.csproj b/MLAPI/MLAPI.csproj
index 4c4de99..422af89 100644
--- a/MLAPI/MLAPI.csproj
+++ b/MLAPI/MLAPI.csproj
@@ -66,6 +66,7 @@
+
diff --git a/MLAPI/NetworkingManagerComponents/BinarySerializer.cs b/MLAPI/NetworkingManagerComponents/BinarySerializer.cs
index afd0135..d32ed6d 100644
--- a/MLAPI/NetworkingManagerComponents/BinarySerializer.cs
+++ b/MLAPI/NetworkingManagerComponents/BinarySerializer.cs
@@ -1,10 +1,9 @@
-using System;
+using MLAPI.Attributes;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
-using UnityEngine;
namespace MLAPI.NetworkingManagerComponents
{
@@ -37,7 +36,7 @@ namespace MLAPI.NetworkingManagerComponents
sortedFields = cachedFields[instance.GetType().FullName];
else
{
- sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).ToArray();
+ sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).Where(x => !x.IsDefined(typeof(BinaryIgnore), true)).ToArray();
cachedFields.Add(instance.GetType().FullName, sortedFields);
}
@@ -142,7 +141,7 @@ namespace MLAPI.NetworkingManagerComponents
sortedFields = cachedFields[instance.GetType().FullName];
else
{
- sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).ToArray();
+ sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).Where(x => !x.IsDefined(typeof(BinaryIgnore), true)).ToArray();
cachedFields.Add(instance.GetType().FullName, sortedFields);
}