static void Prefix(NetworkInstancedEventTransceiver __instance, byte[] bytes) { DebugBytes("ReceiveSerializeEvent", bytes, InstancedDataList); try { var outputTxt = ""; var ab = typeof(NetworkInstancedEventTransceiver); var ac = ab.GetField( "networkView_", BindingFlags.Instance | BindingFlags.NonPublic ); var networkView = (NetworkView)ac.GetValue(__instance); if (networkView == null) { outputTxt += "\tNo NetworkView"; Console.WriteLine(outputTxt); return; } var viewId = networkView.viewID; var a = (int)typeof(NetworkViewID) .GetField( "a", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); var b = (int)typeof(NetworkViewID) .GetField( "b", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); var c = (int)typeof(NetworkViewID) .GetField( "c", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); outputTxt += $"\tNetworkView id: {a} {b} {c}\n"; Console.WriteLine(outputTxt); } catch (Exception e) { Console.WriteLine($"Error on NetworkInstancedEventTransceiver ReceiveSerializeEvent Debug: {e}"); } }
static void Postfix(NetworkInstancedEventTransceiver __instance) { try { var outputTxt = ""; outputTxt += $"{debugCount} NetworkInstancedEventTransceiver Awake from {__instance.GetType()}\n"; debugCount++; var ab = typeof(NetworkInstancedEventTransceiver); var ac = ab.GetField( "networkView_", BindingFlags.Instance | BindingFlags.NonPublic ); var networkView = (NetworkView)ac.GetValue(__instance); if (networkView == null) { outputTxt += "\tNo NetworkView"; Console.WriteLine(outputTxt); return; } var viewId = networkView.viewID; var a = (int)typeof(NetworkViewID) .GetField( "a", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); var b = (int)typeof(NetworkViewID) .GetField( "b", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); var c = (int)typeof(NetworkViewID) .GetField( "c", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(viewId); outputTxt += $"\tNetworkView id: {a} {b} {c}\n"; var eventInstances = (RegisteredEvents.Instances) typeof(NetworkInstancedEventTransceiver) .GetField( "eventInstances_", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(__instance); var events = (Events.InstancedEventBase[]) typeof(RegisteredEvents.Instances) .GetField( "events_", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(eventInstances); var tEvents = (Events.ITransceivedEvent[]) typeof(RegisteredEvents.Instances) .GetField( "tEvents_", BindingFlags.Instance | BindingFlags.NonPublic ) .GetValue(eventInstances); var count = 0; if (events.Length == tEvents.Length) { var addEvents = InstancedDataList.Count == 0; outputTxt += "\tEvents:"; for (int i = 0; i < events.Length; i++) { outputTxt += String.Format("\n\t\t{0}: {1,-50} {2,-50}", count++, events[i]?.GetType(), tEvents[i]?.GetType()); if (addEvents) { InstancedDataList.Add(events[i].GetType().GetNestedType("Data")); } } } else { outputTxt += "\tNormal events:"; foreach (var evt in events) { outputTxt += $"\n\t\t{count++}: {evt?.GetType()}"; } outputTxt += "\n\tTransceived Events:"; count = 0; foreach (var evt in tEvents) { outputTxt += $"\n\t\t{count++}: {evt?.GetType()}"; } } Console.WriteLine(outputTxt); } catch (Exception e) { Console.WriteLine($"Error on NetworkInstancedEventTransceiver Awake Debug: {e}"); } }