/// <summary> /// 广播携带一个参数的全局消息 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="noticeName"></param> /// <param name="vs"></param> /// <param name="applyPooling"></param> /// <returns></returns> public static T BroadcastWithParam <T>(this int noticeName, T vs, bool applyPooling = false) { ParamNotice <T> notice; if (applyPooling) { notice = Pooling <ParamNotice <T> > .Instance.FromPool(); } else { notice = new ParamNotice <T>(); } notice.ParamValue = vs; notice.SetNoticeName(noticeName); NotificatonsInt.Instance.Notificater?.Broadcast(notice); T result = notice.ParamValue; if (applyPooling) { Pooling <ParamNotice <T> > .Instance.ToPool(notice); } else { notice.Dispose(); } return(result); }
void IPlatformSDK.Init() { if (mMessageBody == null) { ParamNotice <SDKMessages> notice = Pooling <ParamNotice <SDKMessages> > .From(); SDKMessages.N_GET_SDK_MESSAGES_REF.Broadcast(notice); mMessageBody = notice.ParamValue; Pooling <ParamNotice <SDKMessages> > .To(notice); } else { } if (mMainActivity == null) { using (AndroidJavaClass mClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { mMainActivity = mClass.GetStatic <AndroidJavaObject>("currentActivity"); mMainActivity.Call("setUnityCallbackBody", mMessageBody.TargetName, mMessageBody.MethodName); } } else { } }
protected override void Start() { base.Start(); if (m_ApplyInitSelf) { IUIStack stack = CreateModular(); if (stack != default) { UIs.Open <UIStack>(stack.Name, () => { UIs.BindResourcesUIToStack(stack, gameObject, ActiveSelfControlHide); return(stack); }); } else { } ParamNotice <MonoBehaviour> notice = Pooling <ParamNotice <MonoBehaviour> > .From(); int noticeName = GetInstanceID(); noticeName.Broadcast(notice); notice.ToPool(); } else { } }
public override void Init() { base.Init(); ShipDockApp app = ShipDockApp.Instance; Datas = app.Datas; ABs = app.ABs; UIs = app.UIs; if (mUI == default) { GameObject prefab = ABs.Get(ABName, UIAssetName); GameObject ui = UnityEngine.Object.Instantiate(prefab, UIs.UIRoot.MainCanvas.transform); ParamNotice <MonoBehaviour> notice = Pooling <ParamNotice <MonoBehaviour> > .From(); int id = ui.GetInstanceID(); id.Broadcast(notice); mUI = (T)notice.ParamValue; notice.ToPool(); } else { } UILayer layer = mUI.GetComponent <UILayer>(); SetUIParent(ref layer); mUI.Add(UIModularHandler); }
public static void SceneCallLater(Action <int> target) { ParamNotice <Action <int> > notice = Pooling <ParamNotice <Action <int> > > .From(); notice.ParamValue = target; ShipDockConsts.NOTICE_SCENE_CALL_LATE.Broadcast(notice); Pooling <ParamNotice <Action <int> > > .To(notice); }
private void Awake() { Events = new NoticesObserver(); mMapper = new StringIntValueList(); mUIAreaNotice = Pooling <ParamNotice <UIDisplay> > .From(); mUIAreaNotice.SetNoticeName(N_UI_AREA_CHANGED); }
private void OnAddCallLate(INoticeBase <int> param) { if (IsDisposed) { return; } ParamNotice <Action <int> > notice = param as ParamNotice <Action <int> >; mTicksLater.CallLater(notice.ParamValue); }
void IPlatformSDK.Init() { init(); onStart(); ParamNotice <SDKMessages> notice = Pooling <ParamNotice <SDKMessages> > .From(); SDKMessages.N_GET_SDK_MESSAGES_REF.Broadcast(notice); mMessageBody = notice.ParamValue; Pooling <ParamNotice <SDKMessages> > .To(notice); }
private void SetRoleCamp() { (mRole as FWRole).Camp = m_Camp; if (m_Camp == 0) { ParamNotice <RoleEntitas> notice = Pooling <ParamNotice <RoleEntitas> > .From(); notice.ParamValue = mRole; FWConsts.COMPONENT_ROLE_CONTROLLABLE.Broadcast(notice); Pooling <ParamNotice <RoleEntitas> > .To(notice); } }
private void Awake() { Events = new NoticesObserver(); mChangedNotice = Pooling <ParamNotice <UIDisplay> > .From(); mChangedNotice.SetNoticeName(N_UI_DISPLAY_SELECTED); if (string.IsNullOrEmpty(m_GroupID)) { throw new Exception("UIDisplay group id do not allow empty."); } else { } }
/// <summary> /// 派发携带一个参数的观察者消息,并传入消息的参数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="target"></param> /// <param name="noticeName"></param> /// <param name="vs"></param> /// <returns></returns> public static T Dispatch <T>(this INotificationSender target, int noticeName, T vs) { ParamNotice <T> notice = new ParamNotice <T> { ParamValue = vs }; notice.SetNoticeName(noticeName); notice.NotifcationSender = target; NotificatonsInt.Instance.Notificater.Dispatch(notice); T result = notice.ParamValue; notice.Dispose(); return(result); }
private void OnDestroy() { Events?.Clean(); mMapper?.Dispose(); mUIAreaNotice?.ToPool(); mUIAreaNotice = default; mCurrent = default; UIDisplay item; int max = m_Displays.Length; for (int i = 0; i < max; i++) { item = m_Displays[i]; item.Events?.RemoveListener(UIDisplay.N_UI_DISPLAY_SELECTED, OnUIDisplayChanged); } Utils.Reclaim(ref m_Displays); }
public override void Init() { base.Init(); Datas = ShipDockApp.Instance.Datas; ABs = ShipDockApp.Instance.ABs; UIs = ShipDockApp.Instance.UIs; GameObject prefab = ABs.Get(ABName, UIName); GameObject ui = Object.Instantiate(prefab, UIs.UIRoot.MainCanvas.transform); ParamNotice <MonoBehaviour> notice = Pooling <ParamNotice <MonoBehaviour> > .From(); int id = ui.GetInstanceID(); id.Broadcast(notice); mUI = (T)notice.ParamValue; Pooling <ParamNotice <MonoBehaviour> > .To(notice); }
void Init() { ParamNotice <SDKMessages> notice = Pooling <ParamNotice <SDKMessages> > .From(); SDKMessages.N_GET_SDK_MESSAGES_REF.Broadcast(notice); mMessageBody = notice.ParamValue; Pooling <ParamNotice <SDKMessages> > .To(notice); using (AndroidJavaClass mClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { mMainActivity = mClass.GetStatic <AndroidJavaObject>("currentActivity"); } mMainActivity.Call("setUnityCallbackBody", mMessageBody.TargetName, mMessageBody.MethodName); mWechat = mMainActivity.Call <AndroidJavaObject>("getWXSDK"); mAlipay = mMainActivity.Call <AndroidJavaObject>("getAlipaySDK"); mNative = mMainActivity.Call <AndroidJavaObject>("getNativeUtil"); mSmartOralEva = mMainActivity.Call <AndroidJavaObject>("getSmartOral"); mTalkingData = mMainActivity.Call <AndroidJavaObject>("getTalkingData"); mTalkingData.Call("init", SDKMessages.SDKChannel); }
private void Update() { if (isActive) { if (mFPSNotice == null) { mFPSNotice = Pooling <ParamNotice <int> > .From(); } else { } mFrameCount++; mTimeDelta = Time.realtimeSinceStartup - mLastShowTime; if (mTimeDelta >= showTimeGap) { mFPS = mFrameCount / mTimeDelta; mFrameCount = 0; mLastShowTime = Time.realtimeSinceStartup; } else { } mFrameRate = (int)mFPS; ShipDockConsts.NOTICE_FPS_SHOW.BroadcastWithParam(mFrameRate); if (m_FrameRateText != default) { mFrameRateValue = mFrameRate.ToString(); m_FrameRateText.text = mFrameRateValue; } else { } } else { } }
private void OnGetSDKMessagesHandler(INoticeBase <int> param) { ParamNotice <SDKMessages> value = param as ParamNotice <SDKMessages>; value.ParamValue = this; }
private void OnGetNewHeros(INoticeBase <int> param) { ParamNotice <int[]> notice = param as ParamNotice <int[]>; notice.ParamValue = Heros.GetNewHeroIDs(); }