/// <summary> /// this function will wait for one frame after the register zone select callback happens /// so that we clear the click and dont unregister it the same frame we register /// </summary> /// <param name="callback"></param> /// <returns></returns> private IEnumerator ZoneUICancelHelper(ZoneSelectDelegate callback) { yield return(new WaitForEndOfFrame()); ButtonHandler Handler = new ButtonHandler(ButtonHandler.LeftClick, (x, y) => { InputController.Instance.UnRegisterHandler(x); ZoneSelectCallback -= callback; }, (x, y) => { }); InputController.Instance.RegisterHandler(Handler); }
public void UnRegisterZoneSelectCallback(ZoneSelectDelegate callback) { ZoneSelectCallback -= callback; UIwaitingForZoneSelection = false; }
public void RegisterZoneSelectCallback(ZoneSelectDelegate callback) { ZoneSelectCallback += callback; UIwaitingForZoneSelection = true; StartCoroutine(ZoneUICancelHelper(callback)); }