2017-10-18 3 views
0

にサービスチャネルモードの追加の品質を追加します。エラー:Property or indexer 'NetworkManager.connectionConfig' cannot be assigned to -- it is readonlyは、私はNetworkManagerをするサービスチャネルモードのいくつかの追加の品質を追加する必要があり、私はこの方法でそれを行うにしようとしていNetworkManagerの

プロパティが読み取り専用の場合、NetworkManagerに追加のチャネルを作成する適切な方法は何ですか?唯一そのget{}プロパティが実装されているため

...

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.Networking; 

public class Server : MonoBehaviour { 

    public Texture2D textureToSend; 
    string messageToSend = "Test Message"; 

    NetworkManager netMan; 

    private int reliableChannel; 
    private int reliableSeqChannel; 
    private int reliableFragChannel; 
    private int unreliableChannel; 
    private int unreliableSeqChannel; 

    // Use this for initialization 
    void Start() { 

     ConnectionConfig cc = new ConnectionConfig(); 

     reliableChannel = cc.AddChannel(QosType.Reliable); 
     reliableSeqChannel = cc.AddChannel(QosType.ReliableSequenced); 
     reliableFragChannel = cc.AddChannel(QosType.ReliableFragmented); 
     unreliableChannel = cc.AddChannel(QosType.Unreliable); 
     unreliableSeqChannel = cc.AddChannel(QosType.UnreliableSequenced); 
     cc.PacketSize = 1440; 

     netMan.connectionConfig = cc; 

     NetworkManager.singleton.StartHost(); 
     Debug.Log("Server Started."); 
    } 

    public void SendOnButtonPress() 
    { 
     SendTexture(textureToSend, messageToSend); 
    } 

    //Call to send the Texture and a simple string message 
    public void SendTexture(Texture2D texture, string message) 
    { 
     TextureMessage msg = new TextureMessage(); 

     //Convert Texture2D to byte array 

     msg.textureBytes = texture.GetRawTextureData(); 
     msg.message = message; 

     NetworkServer.SendToAll(MyMsgType.texture, msg); 
    } 
} 

答えて

1

NetworkManager.connectionConfig以下の完全な機能は、読み取り専用のプロパティです。 set{}プロパティは実装されていません。あなたのケースでは

NetworkManager.connectionConfig.AddChannel(QosType). 

けれども、あなたがより多くのchannesを追加することができますnetManがまだ初期化されていないことを

NetworkManager netMan; 

void Start() 
{ 
    netMan.connectionConfig.AddChannel(QosType.Reliable); 
    netMan.connectionConfig.AddChannel(QosType.ReliableSequenced); 
    netMan.connectionConfig.AddChannel(QosType.ReliableFragmented); 
    netMan.connectionConfig.AddChannel(QosType.Unreliable); 
    netMan.connectionConfig.AddChannel(QosType.UnreliableSequenced); 
} 

注意を。上記のStart関数でコードを使用する前に、GetComponentまたはAddComponent関数を使用して関数を実行する必要があります。そうしないと、実行時エラーが発生します。

関連する問題

 関連する問題