/// <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);
    }
Example #2
0
        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
            {
            }
        }
Example #3
0
        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
            {
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        private void Awake()
        {
            Events  = new NoticesObserver();
            mMapper = new StringIntValueList();

            mUIAreaNotice = Pooling <ParamNotice <UIDisplay> > .From();

            mUIAreaNotice.SetNoticeName(N_UI_AREA_CHANGED);
        }
Example #7
0
        private void OnAddCallLate(INoticeBase <int> param)
        {
            if (IsDisposed)
            {
                return;
            }

            ParamNotice <Action <int> > notice = param as ParamNotice <Action <int> >;

            mTicksLater.CallLater(notice.ParamValue);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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);
    }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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
            {
            }
        }
Example #16
0
        private void OnGetSDKMessagesHandler(INoticeBase <int> param)
        {
            ParamNotice <SDKMessages> value = param as ParamNotice <SDKMessages>;

            value.ParamValue = this;
        }
Example #17
0
        private void OnGetNewHeros(INoticeBase <int> param)
        {
            ParamNotice <int[]> notice = param as ParamNotice <int[]>;

            notice.ParamValue = Heros.GetNewHeroIDs();
        }