Esempio n. 1
0
    IEnumerator SyncClientAttribute()
    {
        while (true)
        {
            ClientObjectAttribute clientObjAttribute = new ClientObjectAttribute();

            clientObjAttribute.CameraPosX = Launcher.instance.sceneCamera.transform.position.x;
            clientObjAttribute.CameraPosY = Launcher.instance.sceneCamera.transform.position.y;
            clientObjAttribute.CameraPosZ = Launcher.instance.sceneCamera.transform.position.z;

            clientObjAttribute.CameraRotX = Launcher.instance.sceneCamera.transform.rotation.eulerAngles.x;
            clientObjAttribute.CameraRotY = Launcher.instance.sceneCamera.transform.rotation.eulerAngles.y;
            clientObjAttribute.CameraRotZ = Launcher.instance.sceneCamera.transform.rotation.eulerAngles.z;

            //clientObjAttribute.LightPosX = Launcher.instance.dynLight.transform.position.x;
            //clientObjAttribute.LightPosY = Launcher.instance.dynLight.transform.position.y;
            //clientObjAttribute.LightPosZ = Launcher.instance.dynLight.transform.position.z;

            SendRawData(new XPacket((ushort)eMsgID.C2S_AttributeStream, 300, 300), MsgNoteUtils.StructToBytes(clientObjAttribute));

            yield return(new WaitForSeconds(0.1f));
        }

        yield return(new AsyncOperation());
    }
Esempio n. 2
0
 public void ProcessAttributeStream(CTSMarker ctsMarker, byte[] msgStream)
 {
     if (mTcpToCloudSocketMap.ContainsKey(ctsMarker))
     {
         //mTcpToCloudSocketMap[ctsMarker].EnqueueAttributeData(new AttributeData(msgStream));
         mTcpToCloudSocketMap[ctsMarker].UpdateList((ClientObjectAttribute)MsgNoteUtils.BytesToStruct(msgStream, typeof(ClientObjectAttribute)));
     }
 }
Esempio n. 3
0
    public void Update()
    {
        if (mRadianceCollector != null)
        {
            AttributeData attributeData = null;
            while ((attributeData = mCloudSocket.DequeueAttributeData()) != null)
            {
                var msgHeader = MsgNoteUtils.GetMessageHead(attributeData.RawData);
                LCRS.Log("msgHeader: " + msgHeader);
                if (msgHeader == eMsgID.C2S_DGI_Init)
                {
                    Baker.Instance.Init();
                    Baker.Instance.SetLightMap();
                    //不需要传ST了:导出json的时候已经计算好了
                    //mCloudSocket.EnqueueJsonData(new LightmapSTJsonData(Object.FindObjectsOfType<MeshRenderer>(), eMsgID.S2C_Json_LightmapST));
                    mCloudSocket.EnqueueJsonData(new LightmapArrayJsonData(eMsgID.S2C_Json_LightmapArray));
                }
                else if (msgHeader == eMsgID.C2D_DGI_RecalcLightmap)
                {
                    Baker.Instance.Init();
                    Baker.Instance.SetLightMap();
                    mCloudSocket.EnqueueJsonData(new LightmapArrayJsonData(eMsgID.S2C_Json_LightmapArray));
                }
                else if (msgHeader == eMsgID.C2S_Json_UpdateObjectPosition)
                {
                    byte[] clientObjBytes = MsgNoteUtils.GetMessageBody(attributeData.RawData);
                    string jsonStr        = Encoding.UTF8.GetString(clientObjBytes);

                    JsonMapper.RegisterExporter <float>((obj, writer) => writer.Write(Convert.ToDouble(obj)));
                    JsonMapper.RegisterImporter <double, float>(input => Convert.ToSingle(input));
                    ClientSyncObjectData syncObject = JsonMapper.ToObject <ClientSyncObjectData>(jsonStr);
                    Baker.Instance.SyncObjectPosition(syncObject);
                    Baker.Instance.Init();
                    Baker.Instance.SetLightMap();
                    mCloudSocket.EnqueueJsonData(new LightmapArrayJsonData(eMsgID.S2C_Json_LightmapArray));
                }
                else
                {
                    ClientObjectAttribute clientObjAttribute = (ClientObjectAttribute)MsgNoteUtils.BytesToStruct(attributeData.RawData, typeof(ClientObjectAttribute));

                    int height = (int)clientObjAttribute.Param % mWebClientExchangeCode;
                    int width  = (int)clientObjAttribute.Param / mWebClientExchangeCode;

                    LCRS.Log("===================================================== Log: " + width + "==324234234235^%$^%@#R@3: " + (ushort)clientObjAttribute.LightPosZ);

                    //  mRadianceCollector.Collect(width, height, clientObjAttribute);

                    //  mCloudSocket.EnqueueRadianceData(new RadianceData((ushort)clientObjAttribute.LightPosZ, (ushort)width, (ushort)height, mRadianceCollector.GetRadianceDataInPng()));
                }
            }
        }
    }