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); } }); } }
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); } } }); } }
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()); }