Beispiel #1
0
            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}");
                }
            }
Beispiel #2
0
            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}");
                }
            }