protected virtual void OnEnable()
        {
#if HERTZLIB_UPDATE_MANAGER
            UpdateManager.AddUpdate(this);
            UpdateManager.AddFixedUpdate(this);
            UpdateManager.AddLateUpdate(this);
#endif
        }
        public int RegisterTitle(Transform tf, float fOffsetY, bool bIsMain)
        {
            Camera caMain = HUDMesh.GetHUDMainCamera();

            if (bIsMain)
            {
                m_tfMain = tf;
            }

            Vector3      vPos  = tf.position;
            HUDTitleInfo title = new HUDTitleInfo();

            title.m_tf       = tf;
            title.m_bIsMain  = bIsMain;
            title.m_vPos     = vPos;
            title.m_fOffsetY = fOffsetY;
            if (caMain != null)
            {
                vPos.y            += fOffsetY + HudSetting.Instance.m_fTitleOffsetY;
                title.m_vScreenPos = caMain.WorldToScreenPoint(vPos);
                title.CaleCameraScale(caMain.transform.position);
            }
            int nID = ++m_nHudID;

            title.m_nTitleID = nID;
            m_HudTitles[nID] = title;

            if (bIsMain)
            {
                title.m_pBatcher = m_StaticBatcher;
            }
            else
            {
                title.m_pBatcher = m_DynamicBatcher;
            }
            title.m_fLastMoveTime = Time.time;
            title.m_pBatcher.PushTitle(title);

            if (!m_bAddUpdate)
            {
                m_bAddUpdate = true;
                UpdateManager.AddLateUpdate(null, 0, UpdateLogic);
            }
            if (!m_bInitFontCallback)
            {
                m_bInitFontCallback = true;

                UIFont uiFont = HUDTitleInfo.GetHUDTitleFont();
                Font.textureRebuilt += OnAllFontChanged;
            }

            return(nID);
        }
Exemple #3
0
 private void Start()
 {
     this.mTrans    = base.transform;
     this.mRelative = this.mTrans.localPosition;
     if (this.ignoreTimeScale)
     {
         UpdateManager.AddCoroutine(this, this.updateOrder, new UpdateManager.OnUpdate(this.CoroutineUpdate));
     }
     else
     {
         UpdateManager.AddLateUpdate(this, this.updateOrder, new UpdateManager.OnUpdate(this.CoroutineUpdate));
     }
 }
Exemple #4
0
 private void Start()
 {
     mTrans    = base.transform;
     mRelative = mTrans.localPosition;
     if (ignoreTimeScale)
     {
         UpdateManager.AddCoroutine(this, updateOrder, CoroutineUpdate);
     }
     else
     {
         UpdateManager.AddLateUpdate(this, updateOrder, CoroutineUpdate);
     }
 }
 private void Start()
 {
     mTrans    = transform;
     mRelative = mTrans.localRotation;
     mAbsolute = mTrans.rotation;
     if (ignoreTimeScale)
     {
         UpdateManager.AddCoroutine(this, updateOrder, CoroutineUpdate);
     }
     else
     {
         UpdateManager.AddLateUpdate(this, updateOrder, CoroutineUpdate);
     }
 }
Exemple #6
0
    //ToDo 之后需要这里添加判别回复类型,现在默认为文字
    public static int newRequest(BGIRequestResult requestResult, RequestType inType, string url, int tag = 0,
                                 float inHttpTimeOut = 20f, bool nolimit = false, bool noCache = false)
    {
        reqid++;
        //Debug.Log(url);
        if (mInstance == null)
        {
            mInstance = new GameObject("_BGHTTP_AGENT");
            GameObject.DontDestroyOnLoad(mInstance);
            UpdateManager.AddLateUpdate(null, 0, OnUpdate);
        }

        //构造requestResult
        if (requestResult == null)
        {
        }

        //队列尚有空余加之
        //if(requests.size<ListLimit)mInstance = go.AddComponent<BGHttpRequest>();
        if (noCache)
        {
            removeCache(url);
        }
        else if (inType == RequestType.IMAGE)
        {
            byte[] res = getCache(url);
            if (res != null)
            {
                //MonoBehaviour.print("cached::::"+url);
                Texture2D imgTexture = new Texture2D(256, 256, TextureFormat.ARGB32, false);
                // imgTexture.anisoLevel = 9;
                imgTexture.wrapMode = TextureWrapMode.Clamp;
                // imgTexture.filterMode = FilterMode.Trilinear;
                // imgTexture.anisoLevel = 3;
                imgTexture.LoadImage(res);
                requestResult.requestSuccessedTexture(imgTexture, tag);
                return(reqid);
            }
            // DownloadImgTest.DownloadTexture(requestResult,url,tag);
            // GameObject.Find("LoginSceneManager").GetComponent<LoginSceneManager>().DownloadTexture(requestResult,url,tag);
            // return reqid;
        }


        if (inType == RequestType.TEXT)
        {
            nolimit = true;
        }

        //add new
        if (requests.size < ListLimit || nolimit)
        {
            BGHttpRequest request = new BGHttpRequest(requestResult, inHttpTimeOut, inType);
            request.requestURLN(url, tag);
            request.taskid = reqid;
            requests.Add(request);
        }
        else
        {
            RequestTask task = new RequestTask();
            task.inHttpTimeOut = inHttpTimeOut;
            task.inType        = inType;
            task.requestResult = requestResult;
            task.tag           = tag;
            task.url           = url;
            task.taskid        = reqid;
            tasks.Add(task);
        }
        return(reqid);
    }
Exemple #7
0
    // 功能:添加一个显示的数字
    public void  AddHudNumber(Transform tf, HUDNumberRenderType nType, int nNumber, bool bShowHead, bool bShowAdd, bool bShowSub)
    {
        if (m_bOpenUI || m_bStartDark || m_bStartMovie)
        {
            return;
        }

        Vector3 vPos   = tf.position;
        int     nIndex = (int)nType;
        //if (nIndex < 0 || nIndex > (int)HUDNumberRenderType.HUD_SHOW_NUMBER)
        //    return;
        Camera caMain = HUDMesh.GetHUDMainCamera();

        if (caMain == null)
        {
            return;
        }
        if (!m_bInit)
        {
            m_bInit = true;
            InitHUD();
        }
        if (!m_bAddUpdateLogic)
        {
            m_bMeshDirty = true;
            UpdateManager.AddLateUpdate(null, 0, UpdateLogic);
        }
        HudAnimAttibute attrib = m_aTtribute[nIndex];

        HUDNumberEntry pNode = QueryHudNumber(nType);

        pNode.m_nType = nType;
        pNode.m_pNext = m_ValidList;
        m_ValidList   = pNode;

        if (nNumber < 0)
        {
            bShowSub = true;
            nNumber  = -nNumber;
        }

        pNode.reset();

        // 初始化
        pNode.m_nSpriteGap = attrib.SpriteGap;
        pNode.m_fStartTime = Time.time;
        pNode.m_tf         = tf;
        pNode.m_vPos       = vPos;

        if (caMain != null)
        {
            // 如果按屏幕对齐
            if (attrib.ScreenAlign)
            {
                Vector3 v1 = caMain.WorldToScreenPoint(vPos);
                v1.x = attrib.OffsetX;
                v1.y = attrib.OffsetY;
                float fScaleX = (float)Screen.width / 1280.0f;
                float fScaleY = (float)Screen.height / 1280.0f;

                if (attrib.ScreenAlignType == HUDAlignType.align_left)
                {
                    v1.x = attrib.OffsetX;
                    v1.y = attrib.OffsetY;
                }
                else if (attrib.ScreenAlignType == HUDAlignType.align_right)
                {
                    v1.x = 1280.0f - attrib.OffsetX;
                    v1.y = attrib.OffsetY;
                }
                else
                {
                    v1.x = Screen.width / 2.0f + attrib.OffsetX;
                    v1.y = attrib.OffsetY;
                }
                v1.x *= fScaleX;
                v1.y *= fScaleY;

                pNode.m_vScreenPos = v1;
                vPos         = caMain.ScreenToWorldPoint(v1);
                pNode.m_vPos = vPos;

                Vector3 vCameraPos = caMain.transform.position;
                pNode.CaleCameraScale(vCameraPos);
            }
            else
            {
                pNode.m_vScreenPos = caMain.WorldToScreenPoint(vPos);
                Vector3 vCameraPos = caMain.transform.position;
                pNode.CaleCameraScale(vCameraPos);
            }
        }

        float            y        = 0.0f;
        HUDSprtieSetting pSetting = m_Settings[nIndex];

        if (bShowHead && pSetting.m_nHeadID != 0)
        {
            pNode.PushSprite(y, pSetting.m_nHeadID);
        }
        bool bHaveNumber = true;

        if (nType == HUDNumberRenderType.HUD_SHOW_ABSORB ||
            nType == HUDNumberRenderType.HUB_SHOW_DODGE)
        {
            bHaveNumber = false;
        }
        if (bHaveNumber)
        {
            if (bShowAdd && pSetting.m_nAddID != 0)
            {
                pNode.PushSprite(y, pSetting.m_nAddID);
            }
            else if (bShowSub && pSetting.m_nSubID != 0)
            {
                pNode.PushSprite(y, pSetting.m_nSubID);
            }
            m_tempNumb.Clear();
            int nI = 0;
            do
            {
                nI       = nNumber % 10;
                nNumber /= 10;
                m_tempNumb.Add(nI);
            } while (nNumber > 0);
            // 反转数组
            m_tempNumb.Reverse();
            for (int i = 0, nSize = m_tempNumb.size; i < nSize; ++i)
            {
                nI = m_tempNumb[i];
                pNode.PushSprite(y, pSetting.m_NumberID[nI]);
            }
        }
        // 居中处理吧
        switch (attrib.AlignType)
        {
        case HUDAlignType.align_right:
            pNode.MakeRight();
            break;

        case HUDAlignType.align_center:
            pNode.MakeCenter();
            break;

        default:
            pNode.MakeLeft();
            break;
        }

        // 申请纹理
        OnPush(pNode);

        if (!m_bCaleScreenScale)
        {
            CaleScreenScale();
        }
        PlayAnimation(pNode, true);
    }
Exemple #8
0
 public static void AddLateUpdate(MonoBehaviour mb, int updateOrder, UpdateManager.OnUpdate func)
 {
     UpdateManager.AddLateUpdate(mb, updateOrder, func);
 }