private void CreateCharRadar(MapRadarDataModel data, string prefab) { var id = data.CharacterId; ComplexObjectPool.NewObject(prefab, o => { if (data.CharType != 0) { var charObj = ObjManager.Instance.FindCharacterById(id); if (charObj == null || charObj.Dead) { ComplexObjectPool.Release(o); return; } } var oTransform = o.transform; oTransform.SetParentEX(CharCursor.transform); oTransform.localScale = Vector3.one; o.SetActive(true); var i = o.GetComponent <ListItemLogic>(); i.Item = data; var r = o.GetComponent <BindDataRoot>(); r.Source = data; itemLogicDict[data.CharacterId] = i; }); }
private void CreateCharRadar(MapRadarDataModel data, string prefab) { var id = data.CharacterId; ComplexObjectPool.NewObject(prefab, o => { var oTransform = o.transform; oTransform.SetParentEX(CharCursor.transform); oTransform.localScale = Vector3.one; o.SetActive(true); var i = o.GetComponent <ListItemLogic>(); i.Item = data; var r = o.GetComponent <BindDataRoot>(); r.Source = data; itemLogicDict[data.CharacterId] = i; }); }
private void CreateMinimapCharacter(Vector3 pos, int type, ulong id, int npcId) { MapRadarDataModel radarDataModel; if (!dataModelsDict.TryGetValue(id, out radarDataModel)) { radarDataModel = new MapRadarDataModel(); radarDataModel.CharacterId = id; radarDataModel.CharType = 0; radarDataModel.Name = ""; if (npcId != -1) { var tbNpc = Table.GetNpcBase(npcId); if (tbNpc != null) { radarDataModel.Name = tbNpc.Name; } var mapTrans = SceneManager.Instance.GetMapTransferList(GameLogic.Instance.Scene.SceneTypeId); var enumerator = mapTrans.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current != null && enumerator.Current.NpcID == npcId) { radarDataModel.Pos = new Vector3(enumerator.Current.OffsetX, enumerator.Current.OffsetY, 0.0f); break; } } } var prefab = ""; if (type == 0) { // player prefab = "UI/SceneMap/MieShiMapPlayer.prefab"; } else if (type == 1) { // 炮塔 prefab = "UI/SceneMap/MieShiMapPaoTa.prefab"; } else if (type == 2) { // 圣坛 prefab = "UI/SceneMap/MieShiMapShengTan.prefab"; } else if (type == 3) { // Boss prefab = "UI/SceneMap/MieShiMapBOSS.prefab"; } else if (type == 4) { // monster prefab = "UI/SceneMap/MieShiMapMonster.prefab"; } else if (type == 5) { // 宝箱 prefab = "UI/SceneMap/MieShiMapBaoXiang.prefab"; } dataModelsDict[id] = radarDataModel; DataModel.CharaModels.Add(radarDataModel); var e1 = new MieShiSceneMapRadar(radarDataModel, 1, prefab); EventDispatcher.Instance.DispatchEvent(e1); } else { radarDataModel.CharType = 0; } radarDataModel.Loction = ConvertSceneToMap(pos); }
private void CreateMinimapCharacter(Vector3 pos, int type, ulong id, int npcId) { MapRadarDataModel radarDataModel = FindDataModel(id); if (radarDataModel == null) { radarDataModel = new MapRadarDataModel(); radarDataModel.CharacterId = id; radarDataModel.CharType = 1; // radarDataModel.Name = ""; /** if (npcId != -1) * { * var tbNpc = Table.GetNpcBase(npcId); * if (tbNpc != null) * { * radarDataModel.Name = tbNpc.Name; * } * * var mapTrans = SceneManager.Instance.GetMapTransferList(GameLogic.Instance.Scene.SceneTypeId); * var enumerator = mapTrans.GetEnumerator(); * while (enumerator.MoveNext()) * { * if (enumerator.Current != null && enumerator.Current.NpcID == npcId) * { * radarDataModel.Pos = new Vector3(enumerator.Current.OffsetX, enumerator.Current.OffsetY, 0.0f); * break; * } * } * }**/ radarDataModel.Loction = ConvertSceneToMap(pos); // dataModelsDict[id] = radarDataModel; dataModelsList.Add(radarDataModel); DataModel.CharaModels.Add(radarDataModel); } else { radarDataModel.Loction = ConvertSceneToMap(pos); radarDataModel.CharType = 1; // dataModelsDict[id].CharType = 1; // dataModelsDict[id].Loction = ConvertSceneToMap(pos); } var prefab = ""; if (type == 0)//player { prefab = "UI/SceneMap/MieShiMapPlayer.prefab"; } else if (type == 1)//仇人 { prefab = "UI/SceneMap/ChickenMapEnemy.prefab"; } else if (type == 2)//鸡王 { prefab = "UI/SceneMap/ChickenMapBoss.prefab"; } else if (type == 3)//魔王 { prefab = "UI/SceneMap/ChickenMapKing.prefab"; } var e1 = new ChickenSceneMapRadar(radarDataModel, 1, prefab); EventDispatcher.Instance.DispatchEvent(e1); }