private void Start() { Adjust(); //get ALL the buttons Button[] buttons = GetComponentsInChildren <Button>(true); foreach (Button b in buttons) { //play button SFX onClick b.onClick.AddListener(ButtonClick); } //get ALL the toggles Toggle[] toggles = GetComponentsInChildren <Toggle>(true); foreach (Toggle t in toggles) { //play toggle SFX onClick t.onValueChanged.AddListener(ToggleClick); } //get ALL the toggles Slider[] slider = GetComponentsInChildren <Slider>(true); foreach (Slider s in slider) { //play toggle SFX onClick PointerHandle fx = s.gameObject.AddComponent <PointerHandle>(); fx.upAction += SliderClick; fx.downAction += SliderClick; } }
public bool TryGet(out TExt result) { if (weakReference != null && weakReference.TryGetTarget(out result)) { if (result.OwnerObject != IntPtr.Zero) { return(true); } } else if (storedOwnerObject != null) { TExt ext = FindByPointer(storedOwnerObject.Pointer); if (ext != null) { this.Set(ext); result = ext; return(true); } // can not find Target because target destroyed storedOwnerObject = null; } result = null; return(false); }
public static void Load <TBase, T>(this Extension <TBase> ext, IStream stream, ref PointerHandle <T> ptr) { if (ptr == null) { ptr = new PointerHandle <T>(); } stream.Read(ref ptr.Pointer); ext.Swizzle(ref ptr.Pointer); }
public void Set(TExt ext) { if (weakReference == null) { weakReference = new WeakReference <TExt>(ext); storedOwnerObject = null; } else { weakReference.SetTarget(ext); } }
private ExtensionReference(SerializationInfo info, StreamingContext context) { weakReference = null; try { IntPtr ownerObject = (IntPtr)info.GetInt32("OwnerObject"); storedOwnerObject = new PointerHandle <IntPtr>(ownerObject); SwizzleManagerClass.Instance.Swizzle(ref storedOwnerObject.Pointer); } catch (SerializationException) { storedOwnerObject = null; } }
public ExtensionReference(TExt ext) { weakReference = new WeakReference <TExt>(ext); storedOwnerObject = null; }
public static void Save <TBase, T>(this Extension <TBase> ext, IStream stream, PointerHandle <T> ptr) { stream.Write(ptr.Pointer); }