• FAQ Strix Unity SDK
  • Japanese
  • 特定のルームプロパティに値を設定し、後で参照すると、設定した値が取得できません。

特定のルームプロパティに値を設定し、後で参照すると、設定した値が取得できません。

> English

以下のような点を確認してみてください。

  1. ルームプロパティの値を更新するためには、SetRoomメソッドを呼び出す必要があります。Strix Unity SDKが提供するクラスに値を設定するのみでは、ルームサーバーが保持しているルームプロパティの値は変更されません。特にStrixNetwork.instance.roomにあるSetName()等のメソッドを呼び出しても変更されません。

  2. SetRoomメソッドを呼び出すことができるのはルームオーナーのみです。他のクライアント (プレイヤー) が呼び出すとエラーになり (失敗ハンドラーが起動され)、値は変更されません。

  3. ルームプロパティの値を設定したり参照したりする際に、ルームプロパティの名前を文字列で指定する場合があります (例えば、IDictionary<string, object>型でルームプロパティの集合を表す場合が該当します)。このとき、プロパティの名前の文字列が間違っていても、エラーになりません (指定した通りの名前のカスタムプロパティとして扱われます)。プロパティの名前を正しく記載しているかどうか、以下の点に注意して再確認してみてください。

    • プロパティ名では大文字と小文字を区別します。またスペース文字の有無も区別します。大文字小文字の使い分けなどが正しいかどうか確認してください。(なお、STRIXが定義しているルームプロパティの名前は全て、先頭が英小文字です。)

  4. ルームプロパティにはデータ型があります。使用するAPIによっては任意の型の値を受け付けるものがありますが、誤ったデータ型としてルームプロパティにアクセスした場合、エラー等は発生しませんが、正しくアクセスできません。

    • 標準のプロパティに値を設定する際に正しいデータ型の値を指定しているかどうかどうか確認してください。

    • 標準のプロパティの値を参照する際に正しいデータ型を使用しているかどうか確認してください。

    • カスタムプロパティにアクセスする際には、値の設定と参照の際のデータ型が一貫していることを確認してください。

Write a Reply...