Exemple #1
0
    public static void SetOnTouchUp(PUGameObject gmObj, Button btn, string newNote)
    {
        if (btn != null && newNote != null)
        {
            btn.onClick.RemoveAllListeners();

            btn.onClick.AddListener(() => {
                if (gmObj != null)
                {
                    NotificationCenter.postNotification(gmObj.Scope(), newNote, NotificationCenter.Args("sender", gmObj));
                }
                else
                {
                    NotificationCenter.postNotification(null, newNote);
                }
            });
        }
    }
Exemple #2
0
    public static void SetOnTouchUp(PUGameObject gmObj, Button btn, string newNote)
    {
        if (btn != null)
        {
            btn.onClick.RemoveAllListeners();

            btn.onClick.AddListener(() => {
                NotificationCenter.postNotification(null, PlanetUnity2.BUTTONTOUCHUP, NotificationCenter.Args("sender", gmObj));

                HandleGlobalButtonOnTouchUp(gmObj);
                if (newNote != null)
                {
                    if (gmObj != null)
                    {
                        NotificationCenter.postNotification(gmObj.Scope(), newNote, NotificationCenter.Args("sender", gmObj));
                    }
                    else
                    {
                        NotificationCenter.postNotification(null, newNote);
                    }
                }
            });
        }
    }
Exemple #3
0
    private static string evaluateString(string evalListString, object o, float multiplier, Func <decimal, decimal> appOverride = null)
    {
        var parts = Regex.Split(evalListString, ",(?![^(]*\\))");

        RectTransform rectTransform = null;

        mathParser.LocalVariables ["dpi"]     = Convert.ToDecimal(PlanetUnityOverride.screenDPI());
        mathParser.LocalVariables ["screenW"] = Convert.ToDecimal(Screen.width / multiplier);
        mathParser.LocalVariables ["screenH"] = Convert.ToDecimal(Screen.height / multiplier);

                #if UNITY_IOS
        mathParser.LocalVariables ["statusBarHeight"] = Convert.ToDecimal((0.13f * PlanetUnityOverride.screenDPI()) / multiplier);
                #else
        mathParser.LocalVariables ["statusBarHeight"] = 0;
                #endif

        GameObject   parentAsGameObject   = o as GameObject;
        PUGameObject parentAsPUGameObject = o as PUGameObject;

        if (parentAsPUGameObject != null)
        {
            var root = parentAsPUGameObject.Scope() as PUCanvas;

            if (root != null)
            {
                foreach (var variable in root.GetVariables())
                {
                    mathParser.LocalVariables[variable.Name] = variable.Value;
                }
            }
        }

        if (parentAsGameObject != null)
        {
            rectTransform = parentAsGameObject.GetComponent <RectTransform> ();
        }
        else if (parentAsPUGameObject != null)
        {
            rectTransform = parentAsPUGameObject.gameObject.GetComponent <RectTransform> ();
        }

        if (rectTransform)
        {
            // Work around for unity stretching canvas bug
            if (o is PUCanvas && (int)rectTransform.rect.width == 100 && (int)rectTransform.rect.height == 100)
            {
                mathParser.LocalVariables ["w"] = Convert.ToDecimal(Screen.width / multiplier);
                mathParser.LocalVariables ["h"] = Convert.ToDecimal(Screen.height / multiplier);
            }
            else
            {
                mathParser.LocalVariables ["w"] = Convert.ToDecimal(rectTransform.rect.width / multiplier);
                mathParser.LocalVariables ["h"] = Convert.ToDecimal(rectTransform.rect.height / multiplier);
            }
        }

        mathParser.usedTokens.Clear();
        evalStringBuilder.Length = 0;
        foreach (string part in parts)
        {
            decimal result = (mathParser.Parse(part) * (decimal)multiplier);
            if (appOverride != null)
            {
                result = appOverride(result);
            }
            evalStringBuilder.AppendFormat("{0},", result);
        }
        evalStringBuilder.Length = evalStringBuilder.Length - 1;

        return(evalStringBuilder.ToString());
    }