public void GoldFly(int count) //金币飘字 { MeDisplay me = AppMap.Instance.me; var actionControler = me.Controller; Vector3 pos = actionControler.transform.position; pos.y += actionControler.GetMeByType <ActionDisplay>().BoxCollider2D.size.y; HeadInfoItemManager.Instance.ShowHeadInfo("金币" + count, Color.green, pos, me.CurFaceDire, HeadInfoItemType.TypePetTalentHp); }
/**创建本玩家**/ private void CreateMe(bool isFirstIntoScene) { MapRange mapRange = AppMap.Instance.mapParser.CurrentMapRange; if (AppMap.Instance.mapParser.MapVo.type != MapTypeConst.CITY_MAP) { MeVo.instance.X = mapRange.MinX + 1; MeVo.instance.Y = (mapRange.MinY + mapRange.MaxY) / 2; } else { if (!isFirstIntoScene) { MeVo.instance.X = mapRange.MaxX - Random.Range(3, 7); //在传送点旁边 MeVo.instance.Y = Random.Range(mapRange.MinY, mapRange.MaxY); } } MeDisplay me = AppMap.Instance.me; if (me != null) { me.ChangeDire(Directions.Right); InitMePos(); _myCamera.InitPos(); SetHeroIdleType(); var actionControler = me.Controller as ActionControler; if (actionControler != null) { actionControler.StopWalk(); //刚进场景的时候停止移动,防止出现误点导致的寻路 } me.SetSortingOrder(false); ChangeSceneOk(); return; } MeVo.instance.ModelLoadCallBack = LoadMeCallBack; MeVo.instance.IsUnbeatable = false; AppMap.Instance.CreateMe(MeVo.instance); }
public MapPointDisplay MapPointDisplay; //当前场景传送点 /**创建本角色**/ public void CreateMe(PlayerVo vo) { if (vo == null) { return; } if (_me != null) { return; } vo.Type = DisplayType.ROLE; _me = new MeDisplay(); //vo.ClothUrl = "Model/Role/" + vo.SysRoleBaseInfo.Model + "/Model/" + vo.SysRoleBaseInfo.Model + // ".assetbundle"; vo.ClothUrl = "Model/Role/" + "100001/Model/" + "100001" + ".assetbundle"; _me.SetVo(vo); if (_playerList.IndexOf(_me) == -1) { _playerList.Add(_me); } Object.DontDestroyOnLoad(_me.GoBase); Object.DontDestroyOnLoad(_me.GoCloth); }
/// <summary> /// 进入场景后初始化一次玩家位置,防止因为同步的时间差导致进副本时玩家的初始位置不正确 /// </summary> private void InitMePos() { MeDisplay me = AppMap.Instance.me; MapRange mapRange = AppMap.Instance.mapParser.CurrentMapRange; if (MeVo.instance.X <= mapRange.MinX) { MeVo.instance.X = mapRange.MinX + 3f; } else if (MeVo.instance.X >= mapRange.MaxX) { MeVo.instance.X = mapRange.MaxX - 3f; } me.Pos(MeVo.instance.X, MeVo.instance.Y); if (AppMap.Instance.mapParser.MapVo.type != MapTypeConst.CITY_MAP) { if (me.Controller.GoName != null) { me.Controller.GoName.SetActive(false); //副本中不显示玩家名字 float y = me.BoxCollider2D.center.y + me.BoxCollider2D.size.y / 2; me.Controller.GoName.transform.localPosition = new Vector3(0f, y, 0f); } } else { if (me.Controller.GoName) { me.Controller.GoName.SetActive(true); float y = me.BoxCollider2D.center.y + me.BoxCollider2D.size.y / 2; me.Controller.GoName.transform.localPosition = new Vector3(0f, y + 0.3f, 0f); } } if (MeVo.instance.mapId != MapTypeConst.GoldHit_MAP) //如果是击石成金副本的话,显示面板 { Singleton <GoldHitView> .Instance.CloseView(); //大副本的界面 Singleton <GoldHitMainView> .Instance.CloseView(); } //主城避免在传送点出生 if (MapTypeConst.MajorCity == MeVo.instance.mapId) { if (AppMap.Instance.InHitPointPos(me.Controller.transform.position)) { Vector3 newPos = me.Controller.transform.position; newPos.y += (GameConst.HitPointRadius + 0.2f); me.Pos(newPos.x, newPos.y); } else if (AppMap.Instance.InWorldMapPointPos(me.Controller.transform.position)) { Vector3 newPos = me.Controller.transform.position; newPos.y += (GameConst.HitPointRadius + 0.2f); me.Pos(newPos.x, newPos.y); } } //脚底灰尘特效位置初始化 GameObject footSmokeObj = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_FootSmoke); if (null != footSmokeObj) { footSmokeObj.transform.position = me.Controller.transform.position; } GameObject autoRoad = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_AutoSerachRoad); if (null != autoRoad) { autoRoad.transform.position = AppMap.Instance.me.Controller.transform.position + new Vector3(0, 2.2f, 0); } if (AppMap.Instance.mapParser.NeedSyn) { RoleMode.Instance.SendStatuChange(); //主角进入场景时同步一次位置信息 } }