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); }
private void HandleFaceMessage(NetworkMessage message) { FaceMessage faceMessage = message.ReadMessage <FaceMessage>(); if (faceMessage != null) { this.OnFaceMessage(faceMessage); Debug.Log("FaceMessage received"); } }
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; } } }