private void OnMessageEventHeader(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
        {
            var bf = new BinaryFormatter();
            var ms = new MemoryStream(args.data);

            textureHeader = (PlayerViewPlayer.TextureHeader)bf.Deserialize(ms);
        }
        // ----------------------------------------------------------------------------------------
        // <summary> メッセージ受信時のCB </summary>
        // ----------------------------------------------------------------------------------------
        private void OnMessageEvent(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
        {
            if (textureHeader != null)
            {
                if ((playerViewTexture == null) ||
                    (playerViewTexture.width != textureHeader.width) ||
                    (playerViewTexture.height != textureHeader.height) ||
                    (playerViewTexture.format != textureHeader.textureFormat)
                    )
                {
                    if (playerViewTexture != null)
                    {
                        DestroyImmediate(playerViewTexture);
                    }
                    playerViewTexture = new Texture2D(
                        textureHeader.width,
                        textureHeader.height,
                        textureHeader.textureFormat,
                        textureHeader.mipChain);
                }

                byte[] raw;
                int    slide = textureHeader.width * 4;
                // 画像データが上下反転しているケースがある
                if (textureHeader.flip)
                {
                    raw = new byte[args.data.Length];
                    for (var y = 0; y < textureHeader.height; y++)
                    {
                        var i1 = (textureHeader.height - (y + 1)) * slide;
                        var i2 = y * slide;
                        System.Array.Copy(args.data, i1, raw, i2, slide);
                    }
                }
                else
                {
                    raw = args.data;
                }
                playerViewTexture.LoadRawTextureData(raw);
                playerViewTexture.Apply();
                // EditorWidowを再描画
                if (window != null)
                {
                    window.Repaint();
                }
            }
        }
        private void OnMessageEvent(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
        {
            var bf          = new BinaryFormatter();
            var ms          = new MemoryStream(args.data);
            var messageData = (MessageData)bf.Deserialize(ms);

            switch (messageData.mMessageID)
            {
            case MessageData.MessageID.RECORDING_ON:
                mIsRecording = true;
                break;

            case MessageData.MessageID.RECORDING_OFF:
                mIsRecording = false;
                break;
            }
        }
예제 #4
0
        /// <summary>
        /// メッセージの受信CB
        /// </summary>
        /// <param name="args">メッセージデータ</param>
        private void OnMessageEvent(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
        {
            MemoryStream memoryStream = new MemoryStream(args.data);
            BinaryReader binaryReader = new BinaryReader(memoryStream);

            var messageID = (UnityChoseKun.MessageID)binaryReader.ReadInt32();



            UnityChoseKun.Log("UnityChosekunEditorWindow.OnMessageEvent(playerID: " + args.playerId + ",message.id" + messageID + ")");
            if (onMessageFuncDict != null && onMessageFuncDict.ContainsKey(messageID) == true)
            {
                var func = onMessageFuncDict[messageID];
                func(binaryReader);
            }

            binaryReader.Close();
            memoryStream.Close();
        }
 private void OnProfileDataEvent(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
 {
     //Debug.Log("OnMessageEvent");
     //var json = System.Text.Encoding.ASCII.GetString(args.data);
     //var message = JsonUtility.FromJson<UnityChoseKunMessageData>(json);
     if (mIsRecording)
     {
         var bf = new BinaryFormatter();
         var ms = new MemoryStream(args.data);
         mProfileData = (ProfileData)bf.Deserialize(ms);
         ms.Close();
         profileDataList.Add(mProfileData);
         mSlider = profileDataList.Count;
         Repaint();
     }
     else
     {
         SendMessage(MessageData.MessageID.RECORDING_OFF);
     }
 }
예제 #6
0
        /// <summary>
        /// Playerから受信したメッセージのCB
        /// </summary>
        /// <param name="args"></param>
        private void OnMessageEvent(UnityEngine.Networking.PlayerConnection.MessageEventArgs args)
        {
            var messageBase = RemoteMessageBase.Desirialize <RemoteMessageBase>(args.data);

            switch (messageBase.m_messageId)
            {
            case RemoteMessageBase.MessageId.Reflesh:
            {
                var message = RemoteMessageBase.Desirialize <RemoteMessageReflesh>(args.data);
                m_scriptNames    = new List <GUIContent>();
                m_scriptNoValues = new List <int>(message.m_scriptNoValues);
                for (var i = 0; i < message.m_scriptNames.Length; i++)
                {
                    m_scriptNames.Add(new GUIContent(message.m_scriptNames[i]));
                }
                m_isPlay = message.m_isPlay;
                m_isRec  = message.m_isRecord;
                m_isWait = false;
            }
            break;

            case RemoteMessageBase.MessageId.Play:
            {
                m_isWait = false;
                m_isPlay = messageBase.m_isSuccess;
            }
            break;

            case RemoteMessageBase.MessageId.Stop:
            {
                m_isWait = false;
            }
            break;

            case RemoteMessageBase.MessageId.AddEventScript:
            {
                var message = RemoteMessageAddEventScript.Desirialize <RemoteMessageAddEventScript>(args.data);

                m_scriptNames    = new List <GUIContent>();
                m_scriptNoValues = new List <int>(message.m_scriptNoValues);
                for (var i = 0; i < message.m_scriptNames.Length; i++)
                {
                    m_scriptNames.Add(new GUIContent(message.m_scriptNames[i]));
                }
                m_scriptIdx = message.m_setIndex;

                m_isWait = false;
            }
            break;

            case RemoteMessageBase.MessageId.PlayFinish:
            {
                m_isPlay = false;
            }
            break;

            case RemoteMessageBase.MessageId.Record:
            {
                m_isRec  = messageBase.m_isSuccess;
                m_isWait = false;
            }
            break;

            case RemoteMessageBase.MessageId.StopRecord:
            {
                var message = RemoteMessageStopRecord.Desirialize <RemoteMessageStopRecord>(args.data);
                var path    = EditorUtility.SaveFilePanel(
                    "Save Event Script Data as TXT",
                    "",
                    "",
                    "txt");
                if (path.Length != 0)
                {
                    using (StreamWriter sw = new StreamWriter(path))
                    {
                        sw.Write(message.m_text);
                        sw.Close();
                    }
                }
                m_isWait = false;
            }
            break;
            }
        }