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); } } } }
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(); }
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); }
/* * 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); }
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(); }
public static bool TryGetFrustumGameObj(int nInstanceID, out GameObj rd) { return(ms_rdFrustumObjDict.TryGetValue(nInstanceID, out rd)); }