private void ShowNodeList(ShowType eDataType, GameObj obj, GUIStyle labelStyle)
        {
            if (obj == null)
            {
                return;
            }

            if (!obj.m_bActive)
            {
                labelStyle = m_LabelStyleInActive;
            }

            GUIStyle selectedStyle = labelStyle;

            if (select_obj == obj)
            {
                selectedStyle = m_LabelStyleSelected;
            }

            if (obj.m_szName.ToLower().Contains(m_szObjName.ToLower()))
            {
                GUILayout.BeginHorizontal();
                if (GUILayout.Button(obj.m_szName, selectedStyle))
                {
                    select_obj = obj;
                    SetParentNodeExpand(obj, true);
                    string data = IObject.Serializer <GameObj>(select_obj);

                    Cmd cmd = new Cmd(data.Length);
                    cmd.WriteNetCmd(NetCmd.C2S_QueryComponent);
                    cmd.WriteString(data);

                    net_client.SendCmd(cmd);

                    OnUpdateUI();
                }
                GUILayout.EndHorizontal();
            }

            if (obj.m_childrenID.Length > 0)
            {
                for (int i = 0; i < obj.m_childrenID.Length; ++i)
                {
                    GameObj rd = null;
                    ShowPanelDataSet.TryGetGameObj(obj.m_childrenID[i], out rd);
                    if (rd != null)
                    {
                        ShowNodeList(eDataType, rd, labelStyle);
                    }
                }
            }
        }
Beispiel #2
0
        public static void AddFrustumRDObject(GameObj rd)
        {
            int nInstanceID = rd.m_nInstanceID;

            if (!ms_rdFrustumObjDict.ContainsKey(nInstanceID))
            {
                ms_rdFrustumObjDict.Add(nInstanceID, rd);
            }
            if (rd.m_nParentID == -1)
            {
                ms_lstFrustumRootRDObjs.Add(rd);
            }
        }
        private void ShowGameObjectsPanel()
        {
            GUILayout.BeginVertical("Box", GUILayout.Width(300));

            scroll_view_node_pos = GUILayout.BeginScrollView(scroll_view_node_pos);

            switch (m_eShowType)
            {
            case ShowType.enum_SceneObjs:
                for (int i = 0; i < ShowPanelDataSet.ms_lstRootRDObjs.Count; ++i)
                {
                    GameObj  rd      = ShowPanelDataSet.ms_lstRootRDObjs[i];
                    GUIStyle uiStyle = rd.m_bActive ? m_LabelStyleActive : m_LabelStyleInActive;
                    if (string.IsNullOrEmpty(m_szObjName))
                    {
                        ShowNodeRecursion(m_eShowType, rd, 0, uiStyle);
                    }
                    else
                    {
                        ShowNodeList(m_eShowType, rd, uiStyle);
                    }
                }
                break;

            case ShowType.enum_FrustumObjs:
                for (int i = 0; i < ShowPanelDataSet.ms_lstFrustumRootRDObjs.Count; ++i)
                {
                    GameObj  rd      = ShowPanelDataSet.ms_lstFrustumRootRDObjs[i];
                    GUIStyle uiStyle = rd.m_bActive ? m_LabelStyleActive : m_LabelStyleInActive;
                    ShowNodeRecursion(m_eShowType, rd, 0, uiStyle);
                }
                break;

            default:
                break;
            }

            GUILayout.EndScrollView();

            GUILayout.EndVertical();
        }
Beispiel #4
0
        public static GameObj GetNextGameObj(GameObj GameObj)
        {
            if (GameObj == null)
            {
                return(null);
            }

            GameObj rdRet = null;

            bFind = false;

            for (int i = 0; i < ms_lstRootRDObjs.Count; ++i)
            {
                rdRet = _GetNextGameObj(ms_lstRootRDObjs[i], GameObj);
                if (rdRet != null)
                {
                    break;
                }
            }
            return(rdRet);
        }
Beispiel #5
0
        /*
         * public bool S2C_SetObjStatic(NetCmd cmd, Cmd c) {
         *  string szRecv = c.ReadString();
         *
         *  List<GameObj> rdGameObjs = RDDataBase.Deserializer<List<GameObj>>(szRecv);
         *  GameObj cacheRDGameObj = null;
         *
         *  foreach (GameObj rdGameObj in rdGameObjs) {
         *
         *      ShowPanelDataSet.ms_GameObjDict.TryGetValue(rdGameObj.nInstanceID, out cacheRDGameObj);
         *      if (cacheRDGameObj != null) {
         *          cacheRDGameObj.bStatic = rdGameObj.bStatic;
         *      }
         *  }
         *  if (OnUpdateData != null) {
         *      OnUpdateData();
         *  }
         *
         *  return true;
         * }
         *
         * public bool S2C_SetObjTag(NetCmd cmd, Cmd c) {
         *  string szRecv = c.ReadString();
         *
         *  List<GameObj> rdGameObjs = RDDataBase.Deserializer<List<GameObj>>(szRecv);
         *  GameObj cacheRDGameObj = null;
         *
         *  foreach (GameObj rdGameObj in rdGameObjs) {
         *      ShowPanelDataSet.ms_GameObjDict.TryGetValue(rdGameObj.nInstanceID, out cacheRDGameObj);
         *      if (cacheRDGameObj != null) {
         *          cacheRDGameObj.szTag = rdGameObj.szTag;
         *      }
         *  }
         *  if (OnUpdateData != null) {
         *      OnUpdateData();
         *  }
         *
         *  return true;
         * }
         */

        public bool S2C_SetObjLayer(NetCmd cmd, Cmd c)
        {
            string szRecv = c.ReadString();

            GameObj[] rdGameObjs     = IObject.DeSerializerArray <GameObj>(szRecv);
            GameObj   cacheRDGameObj = null;

            foreach (GameObj rdGameObj in rdGameObjs)
            {
                ShowPanelDataSet.ms_GameObjDict.TryGetValue(rdGameObj.m_nInstanceID, out cacheRDGameObj);
                if (cacheRDGameObj != null)
                {
                    cacheRDGameObj.m_nLayer = rdGameObj.m_nLayer;
                }
            }
            if (OnUpdateData != null)
            {
                OnUpdateData();
            }
            return(true);
        }
Beispiel #6
0
        public bool S2C_SetObjActive(NetCmd cmd, Cmd c)
        {
            string  szRecv    = c.ReadString();
            GameObj rdGameObj = IObject.DeSerializer <GameObj>(szRecv);

            GameObj cacheRDGameObj = null;

            ShowPanelDataSet.ms_GameObjDict.TryGetValue(rdGameObj.m_nInstanceID, out cacheRDGameObj);

            if (cacheRDGameObj != null)
            {
                cacheRDGameObj.m_bActive = rdGameObj.m_bActive;
            }

            if (OnUpdateData != null)
            {
                OnUpdateData();
            }

            return(true);
        }
        private void ShowNodeRecursion(ShowType eDataType, GameObj obj, int split, GUIStyle labelStyle)
        {
            if (obj == null)
            {
                return;
            }

            if (!obj.m_bActive)
            {
                labelStyle = m_LabelStyleInActive;
            }

            GUILayout.BeginHorizontal();
            GUILayout.Label("", GUILayout.Width(split));

            GUIStyle selectedStyle = labelStyle;

            if (select_obj == obj)
            {
                selectedStyle = m_LabelStyleSelected;
            }

            if (obj.m_childrenID.Length > 0)
            {
                obj.m_bExpand = GUILayout.Toggle(obj.m_bExpand, "", EditorStyles.foldout, GUILayout.Width(10));
            }
            else
            {
                GUILayout.Label("", GUILayout.Width(10));
            }

            if (GUILayout.Button(obj.m_szName, selectedStyle))
            {
                select_obj = obj;
                string data = IObject.Serializer <GameObj>(select_obj);

                Cmd cmd = new Cmd(data.Length);
                cmd.WriteNetCmd(NetCmd.C2S_QueryComponent);
                cmd.WriteString(data);

                net_client.SendCmd(cmd);

                OnUpdateUI();
            }
            GUILayout.EndHorizontal();

            if (obj.m_bExpand && obj.m_childrenID.Length > 0)
            {
                for (int i = 0; i < obj.m_childrenID.Length; ++i)
                {
                    GameObj rd = null;
                    if (eDataType == ShowType.enum_SceneObjs)
                    {
                        ShowPanelDataSet.TryGetGameObj(obj.m_childrenID[i], out rd);
                    }
                    else
                    {
                        ShowPanelDataSet.TryGetFrustumGameObj(obj.m_childrenID[i], out rd);
                    }

                    if (rd != null)
                    {
                        ShowNodeRecursion(eDataType, rd, 15 + split, labelStyle);
                    }
                }
            }
        }
        bool Listen()
        {
            if (select_obj == null)
            {
                return(false);
            }

            bool bRepaint = false;

            switch (Event.current.keyCode)
            {
            case KeyCode.RightArrow: {
                if (select_obj.m_childrenID.Length > 0)
                {
                    select_obj.m_bExpand = true;
                    Repaint();
                }
                break;
            }

            case KeyCode.LeftArrow: {
                if (select_obj.m_childrenID.Length > 0)
                {
                    select_obj.m_bExpand = false;
                    Repaint();
                }
                break;
            }

            case KeyCode.DownArrow: {
                if (Event.current.rawType == EventType.KeyUp)
                {
                    GameObj nextObj = ShowPanelDataSet.GetNextGameObj(select_obj);
                    if (nextObj != null)
                    {
                        select_obj = nextObj;
                        string data = IObject.Serializer <GameObj>(select_obj);
                        Cmd    cmd  = new Cmd(data.Length);
                        cmd.WriteNetCmd(NetCmd.C2S_QueryComponent);
                        cmd.WriteString(data);
                        net_client.SendCmd(cmd);
                    }
                }
                break;
            }

            case KeyCode.UpArrow: {
                if (Event.current.rawType == EventType.KeyUp)
                {
                    GameObj nextObj = ShowPanelDataSet.GetPreGameObj(select_obj);
                    if (nextObj != null)
                    {
                        select_obj = nextObj;
                        string data = IObject.Serializer <GameObj>(select_obj);
                        Cmd    cmd  = new Cmd(data.Length);
                        cmd.WriteNetCmd(NetCmd.C2S_QueryComponent);
                        cmd.WriteString(data);
                        net_client.SendCmd(cmd);
                    }
                }
                break;
            }
            }

            return(bRepaint);
        }
        private void ShowGameObjectHeadInfo(GameObj select_obj)
        {
            GUILayout.BeginVertical("Box");

            GUILayout.BeginHorizontal();

            bool bActive = select_obj.m_bActive;

            select_obj.m_bActive = GUILayout.Toggle(select_obj.m_bActive, select_obj.m_szName);
            #region SetGameObjectActive
            if (bActive != select_obj.m_bActive)
            {
                string szObj = IObject.Serializer <GameObj>(select_obj);

                Cmd cmd = new Cmd(szObj.Length);

                cmd.WriteNetCmd(NetCmd.C2S_CmdSetObjActive);
                cmd.WriteString(szObj);

                net_client.SendCmd(cmd);
            }

            #endregion

            bool bStatic = select_obj.m_bStatic;
            select_obj.m_bStatic = GUILayout.Toggle(select_obj.m_bStatic, "Static");
            #region SetGameObjectStatic
            if (bStatic != select_obj.m_bStatic)
            {
                BatchOption eBatchOption = DisplayeBatchOptionDialog("Static flags");

                if (eBatchOption != BatchOption.eCancle)
                {
                    string szObj = IObject.Serializer <GameObj>(select_obj);

                    Cmd cmd = new Cmd(szObj.Length);
                    cmd.WriteNetCmd(NetCmd.C2S_CmdSetObjStatic);
                    cmd.WriteString(szObj);
                    cmd.WriteInt32((int)eBatchOption);
                    net_client.SendCmd(cmd);
                }
                else
                {
                    select_obj.m_bStatic = !select_obj.m_bStatic;
                }
            }
            #endregion

            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();

            string szTag = select_obj.m_szTag;
            GUILayout.Label("Tag");
            select_obj.m_szTag = EditorGUILayout.TagField(select_obj.m_szTag);
            #region SetGameObjectTag
            if (!szTag.Equals(select_obj.m_szTag))
            {
                BatchOption eBatchOption = DisplayeBatchOptionDialog("Tag");

                if (eBatchOption != BatchOption.eCancle)
                {
                    string szObj = IObject.Serializer <GameObj>(select_obj);

                    Cmd cmd = new Cmd(szObj.Length);
                    cmd.WriteNetCmd(NetCmd.C2S_CmdSetObjTag);
                    cmd.WriteString(szObj);
                    cmd.WriteInt32((int)eBatchOption);
                    net_client.SendCmd(cmd);
                }
                else
                {
                    select_obj.m_szTag = szTag;
                }
            }
            #endregion

            int nLayer = select_obj.m_nLayer;
            GUILayout.Label("Layer");
            select_obj.m_nLayer = EditorGUILayout.LayerField(select_obj.m_nLayer);
            #region SetGameObjectLayer
            if (!nLayer.Equals(select_obj.m_nLayer))
            {
                BatchOption eBatchOption = DisplayeBatchOptionDialog("Layer");

                if (eBatchOption != BatchOption.eCancle)
                {
                    string szObj = IObject.Serializer <GameObj>(select_obj);

                    Cmd cmd = new Cmd(szObj.Length);
                    cmd.WriteNetCmd(NetCmd.C2S_CmdSetObjLayer);
                    cmd.WriteString(szObj);
                    cmd.WriteInt32((int)eBatchOption);
                    net_client.SendCmd(cmd);
                }
                else
                {
                    select_obj.m_nLayer = nLayer;
                }
            }

            #endregion

            GUILayout.EndHorizontal();

            GUILayout.EndVertical();
        }
Beispiel #10
0
 public static bool TryGetFrustumGameObj(int nInstanceID, out GameObj rd)
 {
     return(ms_rdFrustumObjDict.TryGetValue(nInstanceID, out rd));
 }