unity学习(58)——选择角色界面--进入游戏

1.点击开始游戏界面触发如下函数

cs 复制代码
public void beginGame()
{
    //nowPlayer = null;
    //Enter
    if (nowPlayer != null)//选了角色才能开始,playerModel数据结构
    {
        //EnterMapDTO edto = new EnterMapDTO();
        //edto.map = nowPlayer.map;
        //edto.point = nowPlayer.point;
        //edto.rotation = nowPlayer.rotation;
        //string m=As
        string message = Coding<StringDTO>.encode(new StringDTO(nowPlayer.id));
        NetWorkScript.getInstance().sendMessage(Protocol.USER,0,UserProtocol.SELECT_CREQ,message);//按部就班的选择请求
    }

收到服务器的返回包如下:

2.在SocketModel.cs的minna命名空间内新增地图相关的command(第三个参数)

cs 复制代码
public class MapProtocol
{
	public const int ENTER_CREQ = 0;
	public const int ENTER_SRES = 1;
	public const int ENTER_BRO = 2;
	public const int MOVE_CREQ = 3;
	public const int MOVE_BRO = 4;
	public const int LEAVE_CREQ = 5;
	public const int LEAVE_BRO = 6;
	public const int TALK_CREQ = 7;
	public const int TALK_BRO = 8;
	public const int ATTACK_CREQ = 9;
	public const int ATTACK_BRO = 10;
	public const int MONSTER_INIT_SRES = 11;
	public const int BE_ATTACK_CREQ = 12;
	public const int BE_ATTACE_BRO = 13;
	public const int MONSTER_DIE_BRO = 14;
	public const int EXP_UP_SRES = 15;
	public const int LEVEL_UP_BRO = 16;
	public const int MONSTER_RELIVE_BRO = 17;
	
	//public const int SKILL_CREQ = 18;
	//public const int SKILL_BRO = 19;
}

3.在socketModel.cs中增加一个新的dto结构体EnterMapDTO

cs 复制代码
public class EnterMapDTO
{
	public int map;
	public Assets.Model.Vector3 point {get; set;}
	public Assets.Model.Vector4 rotation {get; set;}
}

4.MessageManager.cs中对从服务器收到返回的数据包进行解析

cs 复制代码
case UserProtocol.SELECT_SRES:
    //selectPlayer(model.message);
    Debug.Log("SELECT_SRES");
    EnterMapDTO edto = new EnterMapDTO();
    edto.map = SelectMenu.nowPlayer.map;//static 用返回回来的model信息也是可以的
    edto.point = SelectMenu.nowPlayer.point;
    edto.rotation = SelectMenu.nowPlayer.rotation;
    string m1 = Coding<EnterMapDTO>.encode(edto);
    Debug.Log("MessageManager申请进入地图");
    NetWorkScript.getInstance().sendMessage(Protocol.MAP, edto.map, MapProtocol.ENTER_CREQ,m1);//第二个参数是进哪张地图
    break;

5.MessageManager.cs增加MapHandler函数,用来分类处理来自服务器的包!

实测可以进入MapHandler,但是之后还有许多包,看起来是想要保持连接的架势

相关推荐
hssfscv20 小时前
JAVAweb学习笔记——JS
javascript·笔记·学习
Bathwind-w1 天前
FOC开发工具学习
学习
Coder_Boy_1 天前
DDD从0到企业级:迭代式学习 (共17章)之 四
java·人工智能·驱动开发·学习
deng-c-f1 天前
Linux C/C++ 学习日记(49):线程池
c++·学习·线程池
HyperAI超神经1 天前
【vLLM 学习】Prithvi Geospatial Mae
人工智能·python·深度学习·学习·大语言模型·gpu·vllm
TL滕1 天前
从0开始学算法——第十八天(分治算法)
笔记·学习·算法
思成不止于此1 天前
【MySQL 零基础入门】MySQL 约束精讲(一):基础约束篇
数据库·笔记·sql·学习·mysql
小黄人软件1 天前
【过度滥用眼】真正的理解,从闭眼开始:如何把“眼睛视觉依赖”降到最低,把大脑效率提到最高。【最少用眼的工作与学习体系】
学习
老华带你飞1 天前
建筑材料管理|基于springboot 建筑材料管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
L.fountain1 天前
图像自回归生成(Auto-regressive image generation)实战学习(一)
人工智能·深度学习·学习·计算机视觉·图像自回归