예제 #1
0
    protected void setShowBloodColor(bool bIsHaveTower, U3D_Render.EntityView ev)
    {
        Int32 uID = ev.ID;

        if (bIsHaveTower)
        {
            if (dicMonsterBlood.ContainsKey(ev) && !dicMonsterBlood[ev])
            {
                return;
            }

            //GfxBloodManager.SetBloodColor(uID, false);
            USpeedUI.Blood.UBloodManager.Instance.ChangeBloodColor(uID, false);
            dicMonsterBlood[ev] = false;
        }
        else
        {
            if (dicMonsterBlood.ContainsKey(ev) && dicMonsterBlood[ev])
            {
                return;
            }

            //GfxBloodManager.SetBloodColor(uID, true);
            USpeedUI.Blood.UBloodManager.Instance.ChangeBloodColor(uID, true);
            dicMonsterBlood[ev] = true;
        }
        return;
    }
예제 #2
0
 private void SwitchBossBloodTarget(U3D_Render.EntityView target)
 {
     if (target != null && target.gameObject)
     {
         bossBloodTarget = target.gameObject.transform;
     }
 }
예제 #3
0
    /// <summary>
    /// 切换观察当前距离最近的可见英雄
    /// </summary>
    private void SwitchNearbyViewHero()
    {
        if (SoldierCamera.MainInstance().CurrentCamera == null)
        {
            return;
        }

        ICollection <int> entityList = DataCenter.LogicDataCenter.warOBDataManager.GetCurMainCampPlayerList();
        Transform         camTrans   = SoldierCamera.MainInstance().CurrentCamera.transform;

        float nearbyDis = float.MaxValue;

        U3D_Render.EntityView nearbyEv = null;
        foreach (int evID in entityList)
        {
            U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(evID);
            if (U3D_Render.EntityView.isNullOrEmpty(ev) || ev.gameObject == null)
            {
                continue;
            }

            float dis = Vector3.SqrMagnitude(ev.gameObject.transform.position - camTrans.position);
            if (Mathf.Abs(dis) < nearbyDis)
            {
                nearbyDis = dis;
                nearbyEv  = ev;
            }
        }

        ViewTargetHero(nearbyEv);
    }
예제 #4
0
    private void CameraDeadHandler(bool enabled, CameraStateParam stateParam)
    {
        if (enabled)
        {
            if (isSurvivalMode)
            {
                HandleModeForceSwitch(CameraMode.UserControl);
            }
            else
            {
                HandleModeForceSwitch(CameraMode.DeadControl);
            }
        }
        else
        {
            if (EntityFactory.MainHeroView != null)
            {
                this.soldier = EntityFactory.MainHeroView;
                if (SwitchLookAtSoliderEvent != null)
                {
                    SwitchLookAtSoliderEvent(EntityFactory.MainHeroView);
                }

                NormalFocusPosCheckTime = NormalFocusPosMaxCheckTime + 1;   //旧的死亡模式
            }
            RefreshCameraMode();
        }
    }
예제 #5
0
    // 移动对象
    public bool moveObject(ref U3D_Render.EntityView ev, UnityEngine.Vector3 loc, UnityEngine.Vector3 newloc)
    {
        int oldIndex = loc2index(loc);
        int newIndex = loc2index(newloc);

        if (oldIndex < 0 || newIndex < 0)
        {
            return(false);
        }

        if (oldIndex != newIndex)
        {
            if (!index2node(oldIndex).removeObject(ref ev))
            {
                return(false);
            }

            GridNode pNode = index2node(newIndex);
            if (pNode == null)
            {
                return(false);
            }

            pNode.insertObject(ref ev);

            return(true);
        }

        return(true);
    }
예제 #6
0
 //响应Mask消息
 public void ResponseEntityMaskPropEvent(EntityNumPropEventArgs e)
 {
     if (e.data.nPropID == (int)ENTITY_PROPERTY.PROPERTY_MASK)
     {
         U3D_Render.EntityView ev = e.objev;
         if (ev != null)
         {
             //GfxBloodManager.ChangeMask(ev);
             USpeedUI.Blood.UBloodManager.Instance.ChangeMask(ev);
             //TopNameManager.ChangeMask(ev);
         }
     }
     //处理死亡
     if (e.data.nPropID == (int)ENTITY_PROPERTY.PROPERTY_HP)
     {
         if (null == e.objev)
         {
             return;
         }
         int CurHp = e.objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);
         if (CurHp <= 0)
         {
             //e.objev.StateMachine.ChangeState((int)EntityState.Dead, IntPtr.Zero);
         }
     }
 }
예제 #7
0
 // 获取主角阵营英雄列表(包含主角)
 public static U3D_Render.EntityView geNextPlayer(bool isNext = true)
 {
     if (m_friendPlayerList != null && m_friendPlayerList.Count > 0)
     {
         if (isNext)
         {
             m_PlayerListIndex++;
         }
         else
         {
             m_PlayerListIndex--;
         }
         if (m_PlayerListIndex < 0)
         {
             m_PlayerListIndex = m_friendPlayerList.Count;
         }
         m_PlayerListIndex = m_PlayerListIndex % (m_friendPlayerList.Count + 1);
         if (m_PlayerListIndex == 0)
         {
             return(MainHeroView);
         }
         else
         {
             uint id = m_friendPlayerList[m_PlayerListIndex - 1];
             U3D_Render.EntityView attachev = EntityFactory.getEntityViewByID((int)id);
             if (attachev != null && attachev.CampFlag == CampFlag.CampFlag_Friend && attachev.gameObject && attachev.gameObject.transform &&
                 attachev.StateMachine != null && attachev.StateMachine.GetState() != EntityState.Dead && attachev.StateMachine.GetState() != EntityState.Floating)
             {
                 return(attachev);
             }
         }
     }
     return(null);
 }
예제 #8
0
    public static U3D_Render.EntityView getFriendPlayer(bool getNext)
    {
        if (getNext)
        {
            m_friendPlayerListIndex++;
        }
        for (int i = 0; i < m_friendPlayerList.Count; i++)
        {
            int  index = (m_friendPlayerListIndex + i) % m_friendPlayerList.Count;
            uint id    = m_friendPlayerList[index];
            U3D_Render.EntityView attachev = EntityFactory.getEntityViewByID((int)id);
            if (attachev != null && attachev.gameObject && attachev.gameObject.transform &&
                attachev.StateMachine != null && attachev.StateMachine.GetState() != EntityState.Dead && attachev.StateMachine.GetState() != EntityState.Floating)
            {
                m_friendPlayerListIndex = index;
                return(attachev);
            }
        }

        //切到英雄自己
        if (EntityFactory.MainHeroView != null && EntityFactory.MainHeroView.gameObject != null)
        {
            m_friendPlayerListIndex = 0;
            return(EntityFactory.MainHeroView);
        }
        return(null);
    }
예제 #9
0
    public static void setHeroProperty(U3D_Render.EntityView objev)
    {
        int heroID  = objev.ID;
        int nMaxHp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_HP);
        int nCurHp  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);
        int nTempHp = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SHIELD);
        int nLevel  = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_LEVEL);
        int nCamp   = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP);

        EntityView objMaster     = EntityFactory.getPlayerViewByID(EntityFactory.MainHeroID);
        int        nMainHeroCamp = (objMaster != null ? objMaster.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP) : 0);

        if (nCamp == nMainHeroCamp)
        {
            nCamp = 2;
        }
        else
        {
            nCamp = 3;
        }

        SetCamType(heroID, nCamp);
        SetMaxValue(heroID, nMaxHp);
        SetCurValue(heroID, nCurHp);
        SetLevel(heroID, nLevel);
        SetTempValue(heroID, nTempHp);
        //设置血量数字信息
        string bloodInfo = nCurHp + "/" + nMaxHp;

        SetBloodInfo(heroID, bloodInfo);
    }
예제 #10
0
        public void OnPlayerItemClick(PlayerCombatData item)
        {
            U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(item.nEntityID);
            if (ev == null)
            {
                return;
            }

            CurrentPlayer = item;
            BottomView.ResetView();

            SetNumPromps(ev);
            SetSpellData();
            SetPersonBuyGoodsInfo();
            RestoreAllSpellCD();

            // 切换镜头
            SoldierCamera.MainInstance <SoldierCamera>().SwitchOBSoliderTarget(ev);

#if ENABLE_YUNYING_MODE
            SoldierCamera.MainInstance <SoldierCamera>().EnterOB_yunying(CameraMode.YUNYING_OBHeroLock);
#else
            SoldierCamera.MainInstance <SoldierCamera>().EnableOBMode(true);
#endif
        }
예제 #11
0
    private static void RefershQuadTreeNode()
    {
        U3D_Render.EntityView heroView = EntityFactory.getMainPlayer();
        if (null == heroView)
        {
            return;
        }
        if (!heroView.StateMachine)
        {
            return;
        }

        Vector3 pos   = heroView.StateMachine.transform.position;
        Vector2 pos2D = Vector2.zero;
        Vector2 Dir2D = Vector2.zero;

        pos2D.x = pos.x;
        pos2D.y = pos.z;

        GenerateActiveQuadParent(quadTreeRoot, 0.0f, pos2D, Vector2.zero, CellSize,
                                 ref ActiveLeafList, ref ActiveParent, ref unUsedLeafList, ref unUsedParent);
        ActiveLeafList.Sort(CompareFunc);
        //GetActiveNode(ref ActiveLeafList);

        int currShowCount = GetActiveNodeCount(ActiveLeafList);

        currShowCount = Mathf.Min(currSkinShowCount, currShowCount);
        for (int i = 0; i < currShowCount; i++)
        {
            U3D_Render.SkinCtrl.EntitySkinControl instance = ActiveLeafList[i];
            if (!instance || !instance.isActiveAndEnabled)
            {
                continue;
            }

            instance.OnNotCull();
        }

        for (int i = currShowCount; i < ActiveLeafList.Count; i++)
        {
            U3D_Render.SkinCtrl.EntitySkinControl instance = ActiveLeafList[i];
            if (!instance || !instance.isActiveAndEnabled)
            {
                continue;
            }

            instance.OnCull();
        }

        foreach (U3D_Render.SkinCtrl.EntitySkinControl instance in unUsedLeafList)
        {
            if (!instance || !instance.isActiveAndEnabled)
            {
                continue;
            }

            instance.OnCull();
        }
    }
예제 #12
0
    /// <summary>
    /// 创建一个头顶名称
    /// </summary>
    /// <param name="entry">实体</param>
    /// <param name="entryId">实体ID</param>
    /// <param name="text">内容</param>
    /// <param name="col">颜色</param>
    /// <returns></returns>
    public static TopName CreateTopName(GameObject entry, int entryId, string text, Color col)
    {
        if (SFGFxMovieManager.Instance == null)
        {
            Trace.LogError("SFGFxMovieManager没有初始化,请不要在Awake或Start中创建!");
            return(null);
        }

        if (!bInit)
        {
            Trace.LogError("GfxLableManager必须初始化!");
            return(null);
        }
        //有可能TopNameMovie还没有创建完成.
        if (TopNameMovie.Instance == null)
        {
            //Trace.LogError("TopNameMovie尚未创建完成,请等待创建完成后再调用。");
            return(null);
        }
        if (m_TopNameMap.ContainsKey(entryId))
        {
            Trace.LogWarning(entryId + "已经有头顶名,返回已有的实例");

            return(m_TopNameMap[entryId]);
        }

        U3D_Render.EntityView objev = EntityFactory.getEntityViewByID(entryId);
        if (!objev.IsValid)
        {
            Trace.LogWarning("实体视图无效!id=" + entryId);
            return(null);
        }
        ENTITY_TYPE entityType = objev.Type;

        MovieNode trs = new MovieNode();


        TopName t = GetTopName(ref trs);

        if (t == null)
        {
            return(t);
        }
        t.Init(entry, entryId, text, col);
        t.CreateBillBorad();
        t.ChangeMovieNode(trs);
        m_TopNameMap.Add(entryId, t);
        index++;
        ChangeMask(EntityFactory.getEntityViewByID(entryId), true);

        //if (!go)
        //{
        //    go = GameObject.CreatePrimitive(PrimitiveType.Plane);

        //    go.renderer.material.SetTexture("_MainTex", TopNameMovie.TopNameRenderTexture);
        //}

        return(t);
    }
예제 #13
0
    public static bool Play(ref U3D_Render.EntityView ev, int effectID, cmd_creature_skillview cmdInfo)
    {
        //光效开关
        if (!Initialize.Instance || !OptimitzedControlPlane.Instance.EnabledLightingEffect)
        {
            return(true);
        }

        LightEffectParam param = new LightEffectParam();

        param.nFeedbackID     = cmdInfo.nFeedBackID;
        param.bIsHero         = ev.IsHero;
        param.nSrcEntityID    = ev.ID;
        param.nTargetEntityID = cmdInfo.nTargetEntityID;
        param.srcObject       = ev.gameObject;
        param.nCreatorSide    = cmdInfo.nCreatorSide;
        if (cmdInfo.nSrcEntityID > 0)
        {
            param.nSrcEntityID = cmdInfo.nSrcEntityID;
            param.srcObject    = EntityFactory.getEntityGameObjectByID(cmdInfo.nSrcEntityID);
        }
        param.fDistance    = cmdInfo.fDistance;
        param.fAttackRange = cmdInfo.fAttackRange;
        param.speed        = cmdInfo.fPASD;
        if (cmdInfo.nTargetEntityID != 0)
        {
            param.targetObject = EntityFactory.getEntityGameObjectByID(cmdInfo.nTargetEntityID);
        }
        param.targetPos = new Vector3(cmdInfo.fTargetPos_x, cmdInfo.fTargetPos_y, cmdInfo.fTargetPos_z);
        if (cmdInfo.bFlyToTargetPos != 0)
        {
            param.nEffectFlag |= (int)LightEffectParam.EFFECT_FLAG.FlyToTargetPos;
        }

        param.sourcePos = new Vector3(cmdInfo.fSrcPos_x, cmdInfo.fSrcPos_y, cmdInfo.fSrcPos_z);
        if (cmdInfo.bFromSrcPos != 0)
        {
            param.nEffectFlag |= (int)LightEffectParam.EFFECT_FLAG.CustomSourcePos;
        }

        LightingEffectManager manager = ev.LightingEffectManager;

        if (manager == null)
        {
            return(false);
        }

        // 开始光效
        manager.AddLighting(effectID, param);

        // 输出光效信息
        if (manager.showLog)
        {
            Trace.Log("Add Lighting" + effectID + ". Entity Id=" + ev.ID + " SrcID=" + param.nSrcEntityID);
            Trace.Log("TargetID=" + cmdInfo.nTargetEntityID + ". TargetPos=(" + cmdInfo.fTargetPos_x + "," + cmdInfo.fTargetPos_y + "," + cmdInfo.fTargetPos_z + ").");
        }

        return(true);
    }
예제 #14
0
 public void SwitchLookAtOBSolider(bool isNext)
 {
     U3D_Render.EntityView newSoldier = EntityFactory.geNextPlayer(isNext);
     if (newSoldier != null)    //主角死的时候才会切换
     {
         this.soldier = newSoldier;
     }
 }
예제 #15
0
    /// <summary>
    /// Mask-不移动
    /// </summary>
    /// <param name="ev"></param>
    private void Mask_Not_Move(U3D_Render.EntityView ev)
    {
        int mas = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MASK);

        int flag = (int)ENTITY_MASKFLAG.MASKFLAG_NOT_MOVE;

        bNotMove = (mas & flag) == flag;
    }
예제 #16
0
    /// <summary>
    /// Mask--转向
    /// </summary>
    /// <param name="ev"></param>
    private void Mask_Turn(U3D_Render.EntityView ev)
    {
        int mas = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MASK);

        int flag = (int)ENTITY_MASKFLAG.MASKFLAG_NOT_TURN;

        bNotTurnWhenAttackMask = (mas & flag) == flag;
    }
예제 #17
0
파일: UBlood.cs 프로젝트: zwong91/Titan
        private void ResetData()
        {
            m_MaxValue   = 100;
            m_CurValue   = 100;
            m_TempValue  = 0;
            m_MpValue    = 100;
            m_MpMaxValue = 100;
            m_CamType    = 0;
            m_Level      = 0;
            m_RoleName   = "";

            m_StyleInfo = null;
            m_Entity    = null;
            m_Sequence  = null;

            m_BloodType = BloodStyleType.Player;

            m_bDead    = false;
            m_bVisible = true;
            m_bEnable  = true;
            m_IsOutOfVisibleDistance = false;
            m_IsClosed     = false;
            m_FinalVisible = true;

            if (null != m_BloodImg)
            {
                m_BloodImg.fillAmount = 1;
            }
            if (null != m_BloodTempImg)
            {
                m_BloodTempImg.fillAmount = 0;
            }
            if (null != m_BloodShieldImg)
            {
                m_BloodShieldImg.fillAmount = 0;
            }
            if (null != m_MpImg)
            {
                m_MpImg.fillAmount = 1;
            }
            if (null != m_RoleNameTex)
            {
                m_RoleNameTex.text = "";
            }
            if (null != m_LevelTex)
            {
                m_LevelTex.text = "";
            }
            if (null != m_BloodNumTex)
            {
                m_BloodNumTex.text = "";
            }

            foreach (UBlood_DebuffProgressBar bar in DebuffList)
            {
                bar.Clear();
            }
        }
예제 #18
0
    /// <summary>
    /// Mask--可见性
    /// </summary>
    /// <param name="ev"></param>
    /// <param name="bUseInitMask">使用初始化时候的Mask</param>
    /// <returns></returns>
    private void Mask_Visible(U3D_Render.EntityView ev, bool bUseInitMask = false)
    {
        int mas = 0;

        if (bUseInitMask)
        {
            mas = ev.InitMaskFlag;
        }
        else
        {
            mas = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MASK);
            if (!bFirstVisibleMask)
            {
                bFirstVisibleMask = true;
                return;
            }
        }

        bool bHideFriend = (mas & (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_FRIEND) == (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_FRIEND;
        bool bHideEnemy  = (mas & (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_ENEMY) == (int)ENTITY_MASKFLAG.MASKFLAG_HIDE_ENEMY;

        //两者都不隐藏
        if (!bHideFriend && !bHideEnemy)
        {
            // setAlpha(1.0f);

            m_MaskVisible = true;
        }
        //对友方隐藏
        else if (bHideFriend && !bHideEnemy)
        {
            if (ev.CampFlag == SPELL.CampFlag.CampFlag_Friend ||
                ev.CampFlag == SPELL.CampFlag.CampFlag_Self)
            {
                //setAlpha(0.5f);

                m_MaskVisible = false;
            }
        }
        //对非友方隐藏
        else if (!bHideFriend && bHideEnemy)
        {
            if (ev.CampFlag != SPELL.CampFlag.CampFlag_Friend &&
                ev.CampFlag != SPELL.CampFlag.CampFlag_Self)
            {
                //setAlpha(0.5f);

                m_MaskVisible = false;
            }
        }
        //对两者都隐藏
        else
        {
            //setAlpha(1.0f);
            m_MaskVisible = false;
        }
        UpdateVisible();
    }
예제 #19
0
    // 移动对象
    public static bool MoveObject(ref U3D_Render.EntityView ev, UnityEngine.Vector3 newloc)
    {
        if (m_finder == null)
        {
            return(false);
        }

        return(m_finder.MoveObject(ref ev, newloc));
    }
예제 #20
0
        internal void insertObject(ref U3D_Render.EntityView ev)
        {
            UID id = ev.ID;

            m_allObjList[id] = ev;
            m_campObjList[getCampIndex(ev.CampFlag)][id] = ev;

            ++nChildCount;
        }
예제 #21
0
 protected int getMonsterSchemeId()
 {
     U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(this.m_ID);
     if (ev == null)
     {
         return(0);
     }
     return(ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION));
 }
예제 #22
0
    /// <summary>
    /// 观察指定英雄
    /// </summary>
    /// <param name="entityID">实体ID</param>
    public void ViewTargetHero(int entityID)
    {
        U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(entityID);
        if (!DataCenter.LogicDataCenter.warOBDataManager.CheckEntityViewVisible(ev))
        {
            return;
        }

        ViewTargetHero(ev);
    }
    private bool isCanCreateEffect_OnView(int entityID)
    {
        U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(entityID);
        if (U3D_Render.EntityView.isNullOrEmpty(ev))
        {
            return(false);
        }

        return(ev.StateMachine.m_OnViewVisible);
    }
예제 #24
0
    public int getMonsterSubType()
    {
        U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(this.m_ID);
        if (ev == null)
        {
            return(0);
        }

        return(ev.Flag);
    }
    private bool isCanCreateEffect_Single(int effectID, int entityID, bool bIgnore, LightEffectParam param)
    {
        if (!isValid)
        {
            return(false);
        }
        /*主要是看同一个物体上是不是会有同一个光效,如果有同一个光效,就重新播放一次*/
        Dictionary <int, List <LightingEffectBehavior> > tables = null;

        //已经有这个ID了
        if (m_EntityBindEffectHostID.TryGetValue(entityID, out tables))
        {
            List <LightingEffectBehavior> effect = null;
            //这个光效已经有了
            if (tables.TryGetValue(effectID, out effect))
            {
                //如果这个配置,忽略这个单一光效优化
                if (bIgnore)
                {
                    U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(entityID);
                    if (null != ev)
                    {
                        //如果是玩家,则优化有效,如果是怪物,则继续跳过
                        if (ev.Type == ENTITY_TYPE.TYPE_PLAYER_ROLE)
                        {
                            return(true);
                        }
                    }
                }

                if (effect != null)
                {
                    while (true)
                    {
                        if (effect.Count <= 0)
                        {
                            break;
                        }

                        if (effect[0] != null)
                        {
                            if (effect[0].RePlay(param))
                            {
                                return(false);
                            }
                        }
                        effect.RemoveAt(0);
                    }
                }
                return(true);
            }
            return(true);
        }
        return(true);
    }
예제 #26
0
 void OnSelectedTarget(int entityID)
 {
     m_entityID   = entityID;
     m_entityView = EntityFactory.getEntityViewByID(entityID);
     m_BillBoard.gameObject.SetActive(true);
     transform.gameObject.name = "SelectedTargetTips:" + entityID;
     CurrentHeightOffset       = minHeightOffset;
     CurrentSpeedAcclect       = SpeedAcclect;
     CurrentSpeed = floatSpeed;
     bUp          = true;
 }
예제 #27
0
    /// <summary>
    /// 一般更新
    /// </summary>
    private static void NormalUpdate()
    {
        InvalidList.Clear();
        if (null != m_BloodMap)
        {
            foreach (GfxBlood var in m_BloodMap.Values)
            {
                GfxBlood gba = var;
                U3D_Render.EntityView view = EntityFactory.getEntityViewByID(gba.ID);
                if (view == null)
                {
                    InvalidList.Enqueue(gba);
                    continue;
                }
                if (!gba.Entry)
                {
                    InvalidList.Enqueue(gba);
                    continue;
                }

                if (!gba.Entry.activeSelf || !view.StateMachine.GetVisible())//实体没有被激活或者不可见
                {
                    if (gba.GetEnable())
                    {
                        gba.SetEnable(false);
                    }
                }
                else//正常的实体
                {
                    if (!gba.GetEnable())
                    {
                        gba.SetEnable(true);
                    }
                    gba.OnUpdate();
                }
            }
        }


        while (InvalidList.Count > 0)
        {
            //移除无效的Blood节点
            GfxBlood b = InvalidList.Dequeue();
            if (OptimitzedControlPlane.Instance.EnityCreateOptimize)
            {
                CacheBlood(b);
            }
            else
            {
                GfxBloodManager.Destroy(b);
            }
        }
        InvalidList.Clear();
    }
예제 #28
0
    // 移除对象
    public static bool RemoveObject(ref U3D_Render.EntityView ev)
    {
        if (m_finder == null)
        {
            return(false);
        }

        bool bFlag = m_finder.RemoveObject(ref ev);

        return(bFlag);
    }
예제 #29
0
    // 移除对象
    public bool removeObject(ref U3D_Render.EntityView ev, UnityEngine.Vector3 loc)
    {
        GridNode pNode = index2node(loc2index(loc));

        if (pNode != null)
        {
            return(pNode.removeObject(ref ev));
        }

        return(false);
    }
예제 #30
0
    public static bool CheckDistance(U3D_Render.EntityView from, U3D_Render.EntityView to, int distance)
    {
        if (from == null || to == null || from.gameObject == null || to.gameObject == null)
        {
            return(false);
        }
        float maxDistance = (float)(distance * distance);
        float diff        = (from.gameObject.transform.position - to.gameObject.transform.position).sqrMagnitude;

        return(diff <= maxDistance);
    }