예제 #1
0
    private void OnFaceMessage(FaceMessage message)
    {
        // PNG version

        /*Texture2D texture2D = new Texture2D(message.width,message.height);
         * texture2D.LoadImage(message.png);
         * this.currentTexture = texture2D;
         *
         * this.GuiTexture.texture = texture2D;*/

        // Color[] version
        int x, y;

        for (int i = 0; i < message.width; ++i)
        {
            for (int j = 0; j < message.height; ++j)
            {
                x = this.FaceCenterX - (message.width / 2) + i;
                y = this.FaceTexture.height - this.FaceCenterY + (message.height / 2) - j;
                if (x > 0 && x < this.FaceTexture.width && y > 0 && y < this.FaceTexture.height)
                {
                    FaceTexture.SetPixel(x, y, message.colors[(i * message.width) + j].Color);
                }
            }
        }
        this.FaceTexture.Apply();


        this.faceProjector.material.SetTexture("_ShadowTex", FaceTexture);
    }
예제 #2
0
    private void HandleFaceMessage(NetworkMessage message)
    {
        FaceMessage faceMessage = message.ReadMessage <FaceMessage>();

        if (faceMessage != null)
        {
            this.OnFaceMessage(faceMessage);
            Debug.Log("FaceMessage received");
        }
    }
예제 #3
0
        public void printChain(IMessageBase[] chain)
        {
            foreach (IMessageBase mmsg in chain)
            {
                switch (mmsg.Type)
                {
                case "Source":

                    Program.WriteLine("INFO >#" + ((SourceMessage)mmsg).Id + " @ " + ((SourceMessage)mmsg).Time.ToString());
                    break;

                case "Plain":
                    Program.WriteLine("text >" + ((PlainMessage)mmsg).Message);
                    break;

                case "Image":
                case "FlashImage":

                    Program.WriteLine("pic >" + ((CommonImageMessage)mmsg).Url);
                    break;

                case "Voice":

                    Program.WriteLine("pic >" + ((VoiceMessage)mmsg).Url);
                    break;

                case "Poke":

                    Program.WriteLine("poke >" + ((PokeMessage)mmsg).Name);
                    break;

                case "At":
                    if (((AtMessage)mmsg).Target == session.QQNumber)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                    }

                    Program.WriteLine("at >@" + ((AtMessage)mmsg).Display + " #" + ((AtMessage)mmsg).Target);
                    Console.ForegroundColor = ConsoleColor.Gray;
                    break;

                case "AtAll":

                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Program.WriteLine("atAll >@全体成员");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    break;

                case "Quote":
                    QuoteMessage m = (QuoteMessage)mmsg;
                    Console.BufferHeight += 2;
                    Program.WriteLine("quote >#" + m.Id + "\n“");
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    printChain(m.OriginChain);
                    Console.ForegroundColor = ConsoleColor.Gray;

                    Program.WriteLine("quote >”");
                    break;

                case "Face":
                    FaceMessage f = (FaceMessage)mmsg;

                    Program.WriteLine("face >[" + f.Name + "] #" + f.Id);
                    break;

                default:

                    Program.WriteLine(mmsg.Type + " >[无法在控制台环境展示该消息]");
                    break;
                }
            }
        }