2014-09-04 23 views
1

我的原始文件在Python中正常工作。然而,當我嘗試用硫辛酸來生成protobuf網的CS文件,它給了我一個錯誤信息的NullReferenceException:未將對象引用設置到對象Unity 3D和Protobuf-net:向對象賦值時的NullReferenceException

這裏的一個實例是我的原型文件

message Request { 
    enum Type { 
     CREDENTIALS    = 0; // user credentials 
    } 

    // user credentials message 
    message CredentialsData { 
     required string login = 1; 
     required string password = 2; 
    } 

    required Type      type       = 1; 
    optional CredentialsData   credentials_data    = 2;} 

當它被稱爲在Unity 3D

void Start() 
    { 
     Request request = new Request(); 
     request.type = Request.Type.CREDENTIALS; 
     request.credentials_data.login = "admin"; 
    } 

在分配request.type = Request.Type.CREDENTIALS,卻沒有這個問題。但下一行給了我那個錯誤信息。請幫忙,謝謝。

回答

1

我強烈懷疑request.credentials_datanull。這是簡單的修復:

request.credentials_data = new CredentialsData(); 

或者甚至使用了整個事情的對象的初始化:

var request = new Request { 
     type = Request.Type.CREDENTIALS, 
     credentials_data = new CredentialsData { 
      login = "admin" 
     } 
    }; 
+0

它完美,感謝馬克。我也有問題找到protobuf網的文檔。你能給我一些建議嗎? – user3772803 2014-09-04 14:53:58