示例#1
0
    /// 发送请求对象Proto
    void SendActiveObjectProto(int[] prefabIndexs)
    {
        ProtoIntArray p = ObjectPool.protoPool.GetOrCreate <ProtoIntArray>(ProtoPool.ProtoRecycleType.IntArray);

        p.context = prefabIndexs;
        Send(ProtoIDCfg.ACTIVE_OBJECTS, p, ProtoType.Importance);
        p.Recycle();
    }
示例#2
0
    void OnMsgActiveObject(TcpHost.SocketAccept socket, byte[] protoData)
    {
        ProtoIntArray p = new ProtoIntArray();

        if (p.Parse(protoData))
        {
            ActiveSceneObject(p.context);
        }
    }
示例#3
0
    /// <summary>
    /// 同步行为
    /// </summary>
    void OnObjectAction(byte[] data)
    {
        ProtoIntArray proto = ObjectPool.protoPool.GetOrCreate <ProtoIntArray>(ProtoPool.ProtoRecycleType.IntArray);

        if (proto.Parse(data))
        {
            int[]      ints       = proto.context;
            SceneModel sceneModel = SceneController.instance.GetModel <SceneModel>(SceneModel.name);
            sceneModel.SetSceneObjectAciton(data[0], ints);
        }
        proto.Recycle();
    }
示例#4
0
    /// <summary>
    /// 请求删除对象
    /// </summary>
    void ReqRemoveObject(EventArgs args)
    {
        EventIntArrayArgs objsEvent = args as EventIntArrayArgs;

        int[] t = objsEvent.t;
        if (t != null)
        {
            ProtoIntArray proto = ObjectPool.protoPool.GetOrCreate <ProtoIntArray>(ProtoPool.ProtoRecycleType.IntArray);
            proto.context = t;
            Send(ProtoIDCfg.REMOVE_OBJECTS, proto, ProtoType.Importance);
            proto.Recycle();
        }
    }
示例#5
0
    /// <summary>
    /// 移除对象
    /// </summary>
    void OnRemoveObject(byte[] data)
    {
        ProtoIntArray proto = ObjectPool.protoPool.GetOrCreate <ProtoIntArray>(ProtoPool.ProtoRecycleType.IntArray);

        if (proto.Parse(data))
        {
            int[]      ints       = proto.context;
            SceneModel sceneModel = SceneController.instance.GetModel <SceneModel>(SceneModel.name);
            for (int i = 0; i < ints.Length; i++)
            {
                SceneGameObject obj = sceneModel.GetSceneObject(ints[i]);
                if (obj != null)
                {
                    obj.RemoveObject();
                }
            }
        }
        proto.Recycle();
    }
示例#6
0
    /// <summary>
    /// 销毁场景单位
    /// </summary>
    /// <param name="indexs"></param>
    void RemoveSceneObject(TcpHost.SocketAccept socket, byte[] protoData)
    {
        int[]         indexs = null;
        ProtoIntArray proto  = new ProtoIntArray();

        proto.Parse(protoData);
        indexs = proto.context;
        if (indexs == null || indexs.Length < 1)
        {
            return;
        }
        for (int i = 0; i < indexs.Length; i++)
        {
            if (sceneObjes.ContainsKey(indexs[i]))
            {
                sceneObjes.Remove(indexs[i]);
                Debug.LogWarning("销毁:" + indexs[i]);
            }
        }
    }