我在.dll中有代码,Unity3d中的游戏用来连接服务器。由于某种原因,当unity3d中的代码使用.dll中的代码时,它表示对象引用没有设置为对象的实例。为什么会抛出这个错误?我在使用它之前宣布一切。
编辑*我发布这个的原因是我无法找到任何会导致此错误的内容没有任何内容为空所以请帮助而不是抱怨iv尝试搜索但我找不到任何显示会抛出错误的内容。
.dll中的代码
public void Start(string IP,int Port)
{
try
{
keyHandeler.create();
TcpClient socket = new TcpClient();
socket.Connect(IP, Port);
st = socket.GetStream();
Connection(true);
}
catch { Connection(false); }
}
unity3d中的代码
Client server = new Client();
void Start ()
{
server.Start(IP, Port); // throws the object reference not set to an instance of an object
// other stuff after this but it never reaches them
}
答案 0 :(得分:1)
在server.Start(IP, Port);
上设置断点,看看Server是否为空。
如果它不为空,那么keyHandeler.create();
或socket.Connect(IP, Port);
就会发生某事。
您是否可以访问DLL代码?如果是,他们尝试通过设置断点来调试它,看看是否有任何对象为空。