public void PopulateComponents() { if (identity != null) { identity.attachedComponents = new List <IReceivesPacket <MeshPacket> >(); identity.attachedComponents.AddRange(gameObject.GetComponentsInChildren <IReceivesPacket <MeshPacket> >(true)); foreach (IReceivesPacket <MeshPacket> c in identity.attachedComponents) { Debug.Log("Component: " + c.GetType()); if (c is INetworked <MeshNetworkIdentity> ) { INetworked <MeshNetworkIdentity> networked = c as INetworked <MeshNetworkIdentity>; networked.SetIdentity(identity); //Debug.Log("Setting identity with objectID = " + identity.GetObjectID()); } else { Debug.LogError("An attached component does not support the INetworked interface!"); } } } else { Debug.LogError("This container's MeshNetworkIdentity doesn't exist. Something very weird just happened."); } }
public static void Write <T>(this NetBuffer buffer, INetworked <T> networkedObject) where T : INetworked <T>, new() => networkedObject.Serialize(buffer);