private static Type GetSignalType(BaseSignal signal)
        {
            var signalType = signal.GetType();

            while (signalType.BaseType != typeof(BaseSignal))
            {
                signalType = signalType.BaseType;
            }
            return(signalType);
        }
Beispiel #2
0
    public static void OnSignalDispatch(BaseSignal s, int nonbaseListeners, params object[] parametersToStrings)
    {
        if (Context.DebuggingOptions == null || !Context.DebuggingOptions.LogSignalDispatches)
        {
            return;
        }

        Type   type      = s.GetType();
        string className = type.Name;

        if (type.IsNested)
        {
            string[] parts = type.FullName.Split('.');
            parts = parts[parts.Length - 1].Split('+');
            Assert.IsTrue(parts.Length == 2);
            className = FilterEndingsAndJoin(CamelCaseToArray(parts[0])) + " -> " + ColourNestedSignal(parts[1]);
        }
        else
        {
            className = FilterEndingsAndJoin(CamelCaseToArray(className));
        }

        int count = s.BaseSubscriptionCount + nonbaseListeners;

        string p = "";

        if (parametersToStrings.Length > 0)
        {
            p = "Parameters: (";

            for (int i = 0; i < parametersToStrings.Length; i++)
            {
                p += parametersToStrings[i].ToString();

                if (i > 0)
                {
                    p += ", ";
                }
            }

            p += ")";
        }

        Debug.Log(className.Colored(Colors.teal) + " - " + DetermineSignalType(type.Name) + " Dispatched to " + count + " subscriber(s) \n" + p + "\n" + type.FullName + "\n");
    }