凹みTipsにもあるただし、サーバかクライアントかといったことや、参照しているオブジェクトが各クライアントから見てローカルなのかリモートなのかは強く意識する必要があります。ここに繋がるのではないかと思ってます。呼び出すところを間違えるとエラーが出ます。クライアントから呼ばない時に付けますがエラーや警告が出ません。サーバーから呼ばない時に付けますがエラーや警告が出ません。2017/04/24追記また、NetworkManagerからPlayerとしてSpawnしたPrefabには権限(LocalPlayerAuthority)が付与されます。ついた関数を呼び出そうとするとWarningが出ます。権限を持たせられるようになったそうです。isServer、isClient、isLocalPlayerなどを使って分岐しましょう。これらも注意しないと同時にフラグが立ったりする可能性があるので、一応InspectorをDebug表示にするなどしてEditor上で確認するのがよいかと。Hostとして起動した時のPlayer参考docs.unity3d.comSyncVar変数をServerとClientで同期できます。izmさんの記事より変数をサーバーからすべてのクライアントに自動的に同期するために使用されます。クライアントからそれらに割り当てないでください。クライアント側での割り当ては無意味ですはい。Attributeで同期できません。こんな感じで書きました。ServerのCmdUpdatePlayerID()を実行Server側のplayerIDが更新されるのでここでSyncするついでにhookしておいたOnUpdatePlayerID()が呼べる(ただし、SyncしたのはClient側なのでClientで呼ばれる)と、これを同一コード内でやるので、ごっちゃごちゃする可能性が...hookのところはあってもなくてもおっけーです。MessageAttributeよりわかりやすい気がします。(ただ、こいつも同じコード内でやり取りするとこを書くけど)参考docs.unity3d.com適当に書いてみたやつを貼ります。Messageを使いたいコード内に書いちゃえば使えます。Findしてるのは重たいのでホントはやらないほうがいいですが。Msg");}RegisterHandlerでデリゲートを追加する感じで使えると思います。SetupClientはあってもなくてもいいですが、client.Send()は使えるようにどこかでclientを格納しておく必要があります。GetComponent().netId;で持ってきています。playerに0始まりでIDを振りたいとなると話は別です。ここから想像のお話なので、あってるかはわかりません。詳しくはソースを読んで下さい。数に依存している気がします。4;とかやってました。他のprefabでNetworkIdentityを使うことになったので、追加するとErrorが吐かれてしまいました。今後SceneにUNET周りを使いたいPrefabなりなんなりが増えるたびにIDがズレます。playerはSceneの最後でSpawnされるのかどんどん後ろにずれていく気がします。}とかで取ってくるほうがよい気がしました...想像おわり。これは真っ黒になるので使えませんでした。こちらを参考にRenderTexture経由のほうがよいです。Application.persistentDataPathのほうがいいそうです。(というかこっちでないと保存できない)Application.dataPathはapk内の領域になるので、ビルド時はAndroidではファイル生成とかできないですよ。2017年4月14日PCに送りたいときはできたbyte配列をNetworkMessageで送ってやればよいです。サイズが大きいと怒られるので分割して送って受信側でくっつけてやればよいです。勝手にWifiを繋ぎ変えられてデバッグで死ぬ可能性があります。pingを飛ばして確認したほうがよいです。(1時間くらい悩んだ)あとはTimeOutの時間を伸ばしておくと良いかもです。毎回ビルドしなきゃいけない!!聞いた話によるとPhotonのほうが楽らしいです。そっちは見てないのでわかりません。以上ここ1週間くらい格闘している(進行形)お話でした。読者になる@shop_0761をフォローはてなブログをはじめよう!shop_0761さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。