unity中使用socket类实现无线通讯,调试没有问题,但是在进入building中,一直提示TcpClient存在编译错误,之后就进入不了playmode模式,必须把那个脚本删掉重新编写。代码和调试图如下:
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
public class SendData : MonoBehaviour
{
public Text Text;
public float offset;
public Camera camera;
public TcpClient client;
public float beforeoffset;
// Use this for initialization
void Start()
{
client = new TcpClient();
try
{
client.Connect(IPAddress.Parse("192.168.1.100"), 137);
}
catch (Exception ex)
{
Debug.Log(ex.Message);
}
}
// Update is called once per frame
void Update()
{
//client.Connect(IPAddress.Parse("192.168.1.100"), 137);
offset = (transform.position.z - camera.transform.position.z) * 1000;//将数值单位转换为mm
if (client.Connected)
{
if ((offset - beforeoffset) > 10 || (beforeoffset - offset) > 10)
{
Client();
}
}
beforeoffset = offset;
sendText();
}
void sendText()
{
Text.text = "Z差值:" + offset;
}
public void Client()
{
string message = Convert.ToString(offset);//将数值转换成字符串进行传输
NetworkStream streamToSever = client.GetStream();//获得客户端的数据流
byte[] buffer = Encoding.Unicode.GetBytes(message);
streamToSever.Write(buffer, 0, buffer.Length);
}
}