Unity使用MatchVS联网

项目需要使用联网云锚点,但Google的不可用,曲线救国,就使用这种Game联网服务来做吧!

说明

首先 MatchVS 涉及到房间、匹配等逻辑。这些逻辑在给的示例里都有写好的部分,之后会研究的。这几天主要研究的是房间内部不同客户端之间的通信。
给的 Demo 里面只有一个 Scene,很多东西都是预制体。没有找到它预制体怎么实例化的,目前直接更改预制体。

重要函数

首先需要增加命名空间

using LitJson;
using MatchVS;

SendEvent

这个函数是自己写的,作用是向所有人发送位置信息。

public void updatePos(float x, float y, float z)
{
    JsonData data = new JsonData();
    data["action"] = "pos";   //根据action判断是什么动作,pos表示更改位置
    data["x"] = x;
    data["y"] = y;
    data["z"] = z;
    string value = data.ToJson();
    GameManager.SendEvent(value, new int[] { GameManager.userID });
}

重要是将信息转化为 Json 串再转化为 string 串,并调用 GameManager.SendEvent 函数发送出去。

OnSendEventNotify

这个是接受信息的函数。不需要绑定之类的。目前作用是根据传递来的位置更改当前客户端物体的位置。

private void OnSendEventNotify(MsMsgNotify tRsp)
{
    Debug.Log("EventNotify");
    string payload = tRsp.cpProto;
    JsonData data = JsonUtil.toObject(payload);
    string action = (string)data["action"];

    if (action.Equals("pos")) //根据action判断是什么动作,应该对应什么操作
    {
        float x = (float)data["x"];
        float y = (float)data["y"];
        float z = (float)data["z"];
        //Debug.Log("x:" + x + " y:" + y + " z:" + z);
        this.transform.position = new Vector3(x, y, z);
    }
}

遇到的困难

  1. 目前还没能在手机上跑出来,所有测试都是在Windows系统上的。
  2. 跟联网相关的项目,每次运行之后再次运行或关闭软件都会卡死,所以测试的时候很浪费时间。
  3. 房间机制没有吃透,给的示例里是三个人才会开始。之后需要继续向前挖掘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值