当前位置:   article > 正文

unity学习(60)——选择角色界面--MapHandler2-MapHandler.cs

unity学习(60)——选择角色界面--MapHandler2-MapHandler.cs

1.新建一个脚本,里面有static变量loadingPlayerList

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Assets.Scripts.Model
  7. {
  8. internal class LoadData
  9. {
  10. public static List<PlayerModel> loadingPlayerList = new List<PlayerModel>();
  11. }
  12. }

2.因为与MAP相关的函数实在太多,之前LOGIN USER那样写不合适,在handler文件夹下,新建一个脚本文件,MapHandler.cs

3.MessageManager中的MapHandlerFk部分如下:

  1. public void MapHandlerFk(SocketModel model)
  2. {
  3. Debug.Log("MapHandlerFk");
  4. switch (model.command)
  5. {
  6. //这头应该是1 2 4 6 8
  7. case MapProtocol.ENTER_SRES://初始化所有玩家信息--一开始进好几个
  8. Debug.Log("MapHandler-ENTER_SRES");//没问题
  9. PlayerModel[] players= Coding<PlayerModel[]>.decode(model.message);
  10. //loadplayerlist
  11. Debug.Log(model.message);
  12. LoadData.loadingPlayerList.AddRange(players);//增加多个元素
  13. Debug.Log("当前玩家进入地图");
  14. Debug.Log(SelectMenu.nowPlayer.map);
  15. Loading(SelectMenu.nowPlayer.map);//这个是2号 没有问题,到现在 为止 还没有涉及到动画
  16. break;
  17. case MapProtocol.ENTER_BRO://其他玩家进入场景--每次进一个
  18. Debug.Log("MapHandler-ENTER_BRO");//没问题
  19. PlayerModel player = Coding<PlayerModel>.decode(model.message);
  20. LoadData.loadingPlayerList.Add(player);//增加多个元素
  21. //createplayer
  22. MapHandler.getInstance().createPlayer(player);
  23. //createPlayer(player);
  24. break;
  25. }
  26. }

4.在MapHandler.cs中所有的函数如下:

  1. public void createPlayer(PlayerModel model)
  2. {
  3. playerList.Add(model.id, model);//增加单个新角色-
  4. Assets.Model.Vector3 point = model.point;//见多自然就会了
  5. Assets.Model.Vector4 rotation = model.rotation;
  6. //下面大概率是要实例化了--通过预组件生成实例对象
  7. GameObject GO = (GameObject)GameObject.Instantiate(playerProfabs[model.job], new Vector3((float)point.X, (float)point.Y, (float)point.Z), new Quaternion((float)rotation.X, (float)rotation.Y, (float)rotation.Z, (float)rotation.W));
  8. GO.name = model.id;
  9. GO.tag = "Player";
  10. GO.transform.position = new Vector3(188f, 10f, 88f);//set position;
  11. playergoList.Add(model.id, GO);实例对象 数组 go
  12. GO.BroadcastMessage("InfoInit", model);//这个叫唤了也不一定收得到
  13. if (model.id == GameInfo.myModel.id)
  14. {//make sure our camera wouln't look at other players.
  15. //GameObject tg= GameObject.Find ("Root");
  16. GO.BroadcastMessage("setTarget", GO);//
  17. //BroadcastMessage ("setTarget",tg);
  18. //BroadcastMessage ("InfoInit",model);
  19. }
  20. }

到此为止没有错误了

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号