C#学习教程:在Unity中从一个程序向另一个程序发送消息它们都是在Unity中构建的。我想在不使用网络的情况下将消息从一个发送到另一个。如何从一个exe程序向Unity中的另一个exe程序发送消息?这是集成的Mono/.net功能还是另一个集成的Mono/.net功能?您可以使用命名管道,它使用共享内存与同一台计算机上的另一个应用程序进行通信。转到文件->构建设置...选择PC、Mac和LinuxStandalone,然后单击播放器设置...。现在,将Api兼容级别更改为.NET2.0。关闭并重新打开VisualStudio。现在,您可以使用System.IO.Pipes;使用System.IO.Pipes导入;并能够使用NamedPipeServerStream和NamedPipeClientStream。下面是一个非常简化的服务器和客户端。您必须在Thread中执行此操作,并且还应该处理异常。如果您不想使用线程,还有一个异步参数(PipeOptions.Asynchronous)使其成为非阻塞运算符。它从那里变得复杂,你必须在MSdoc上寻找一些例子。简单服务器://创建服务器实例NamedPipeServerStreamserver=newNamedPipeServerStream("MyCOMApp",PipeDirection.InOut,1);//等待客户端连接server.WaitForConnection();//创建用于读写的流StreamStringserverStream=newStreamString(server);//向客户端发送消息serverStream.WriteString("HelloFromServer");//从客户端读取字符串dataFromClient=serverStream.ReadString();UnityEngine.Debug.Log("从客户端收到:"+dataFromClient);//关闭连接server.Close();简单客户://创建客户端实例NamedPipeClientStreamclient=newNamedPipeClientStream(".","MyCOMApp",PipeDirection.InOut,PipeOptions.None,TokenImpersonationLevel.Impersonation);//连接到服务器client.Connect();//创建用于读写的流StreamStringclientStream=newStreamString(client);//从服务器读取字符串dataFromServer=clientStream.ReadString();UnityEngine.Debug.Log("从Serv接收到er:"+dataFromServer);//向服务器发送消息clientStream.WriteString("Byefromclient");//关闭客户端client.Close();来自MSDoc的StreamString类:publicclassStreamString{privateStreamioStream;privateUnicodeEncodingstreamEncoding;publicStreamString(StreamioStream){this.ioStream=ioStream;streamEncoding=newUnicodeEncoding();}publicstringReadString(){intlen=0;len=ioStream.ReadByte()*256;len+=ioStream。ReadByte();byte[]inBuffer=newbyte[len];ioStream.Read(inBuffer,0,len);returnstreamEncoding.GetString(inBuffer);}publicintWriteString(stringoutString){byte[]outBuffer=streamEncoding.GetBytes(outString);intlen=outBuffer.Length;if(len>UInt16.MaxValue){len=(int)UInt16.MaxValue;}ioStream.WriteByte((byte)(len/256));ioStream.WriteByte((byte)(len&255));ioStream.Write(outBuffer,0,len);ioStream.Flush();returnoutBuffer.Length+2;}}你可以有一个他们写和读的文件可以使用时间戳来显示最后一条消息的写入时间以上就是C#学习教程的全部内容:Unity中从一个程序向另一个程序发送消息,如果对大家有用需要进一步了解C#学习教程,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
