Your SlideShare is downloading. ×
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Unityで通信してみよう!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Unityで通信してみよう!

17,556

Published on

2/2に大阪で行われたUnity勉強会のLT枠でプレゼンしたNetworkViewのプレゼン資料です。 …

2/2に大阪で行われたUnity勉強会のLT枠でプレゼンしたNetworkViewのプレゼン資料です。
実際に動くものがこちら「https://github.com/koppepan/NetworkView」

0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
17,556
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
57
Comments
0
Likes
18
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNITYで通信してみよう!~5分では出来なかったNETWORKVIEW入門~
  • 2. 自己紹介名前 コッペパン所属 HAL大阪ゲーム制作学科3年 ※絶賛就職活動中Twitter @pepa_696使用言語 C/C++,C#Unity歴 約3か月
  • 3. UNITY同士で通信 その1NetworkViewってなんぞや?
  • 4. UNITY同士で通信 その1NetworkViewってなんぞや? Unityのネットワーキングの技術で、 Script、アニメーション、Transform、RigidBody のいずれか一つを同期する仕組み。
  • 5. UNITY同士で通信 その1NetworkViewってなんぞや? Unityのネットワーキングの技術で、 Script、アニメーション、Transform、RigidBody のいずれか一つを同期する仕組み。 リモートプロシージャコール(RPC)でネットワーク上 にあるオブジェクトのメソッドを呼び出すこともでき る。
  • 6. UNITY同士で通信 その1NetworkViewってなんぞや? Unityのネットワーキングの技術で、 Script、アニメーション、Transform、RigidBody のいずれか一つを同期する仕組み。 リモートプロシージャコール(RPC)でネットワーク上 にあるオブジェクトのメソッドを呼び出すこともでき る。 1つのObjectにいくつでもNetworkViewを積むことも可 能。 ※ ネットワークの負荷とかは知らないよ
  • 7. UNITY同士で通信 その2NetworkViewの使い方
  • 8. UNITY同士で通信 その2NetworkViewの使い方 通信したいObjectに NetworkViewを追加する。 (Component->miscellaneous->Network View)
  • 9. UNITY同士で通信 その2NetworkViewの使い方 通信したいObjectに NetworkViewを追加する。 (Component->miscellaneous->Network View) 以上
  • 10. UNITY同士で通信 その2実際に使って見る(準備編)
  • 11. UNITY同士で通信 その2実際に使って見る(準備編) Serverを立てる(host)• Network.InitializeServer(int, int, boolean); • 第1引数 : 接続可能人数 • 第2引数 : 接続を受け入れるポート番号 • 第3引数 : NATのパンチスルー機能を設定 (正直よく分かってないのでfalseで問題なし)
  • 12. UNITY同士で通信 その2実際に使って見る(準備編) Serverを立てる(host)• Network.InitializeServer(int, int, boolean); • 第1引数 : 接続可能人数 • 第2引数 : 接続を受け入れるポート番号 • 第3引数 : NATのパンチスルー機能を設定 (正直よく分かってないのでfalseで問題なし)Serverに接続する(client)• Network.Connect(string, int ); • 第1引数 : hostのIPアドレス • 第2引数 : hostが接続を受け入れているポート番号
  • 13. UNITY同士で通信 その3Objectを生成する
  • 14. UNITY同士で通信 その3Objectを生成する Network.Instantiate( prefab, // オブジェクト Vector3, // 初期位置 Quaternion, // 初期角度 int // グループNo ); ネットワーク内の全てのPCでインスタンス化される。
  • 15. UNITY同士で通信 その4生成する場所
  • 16. UNITY同士で通信 その4生成する場所 Server側• void OnServerInitialized() {} サーバー立ち上げ時に呼ばれるメソッド
  • 17. UNITY同士で通信 その4生成する場所 Server側• void OnServerInitialized() {} サーバー立ち上げ時に呼ばれるメソッドClient側• void OnConnectedToServer() {} サーバーに誰かが接続してきた時に呼ばれるメソッド この辺でNetwork.Instantiateを実行すると良い。
  • 18. UNITY同士で通信 その5切断時の処理
  • 19. UNITY同士で通信 その5切断時の処理 Server側• void OnPlayerDisconnected(NetworkPlayer p) { Network.DestroyPlayerObjects(p); } クライアントが切断されたときに呼ばれるメソッド。 そのクライアントだけをゲーム内から消す。
  • 20. UNITY同士で通信 その5切断時の処理Client側• void OnDisconnectedFromServer() { Application.Quit(); } サーバーに誰かが接続してきた時に呼ばれるメソッド。 簡単なゲームならサーバーが落ちたらクライアントも 落としてしまって良いと思います。
  • 21. UNITY同士で通信 その6カクカクする原因は
  • 22. UNITY同士で通信 その6カクカクする原因は NetworkViewには1秒間に 何回通信するかの設定があるからです。
  • 23. UNITY同士で通信 その6カクカクする原因は NetworkViewには1秒間に 何回通信するかの設定があるからです。 Network.sendRate デフォルトだと15回に設定されています。
  • 24. UNITY同士で通信 その6カクカクする原因は 対策案
  • 25. UNITY同士で通信 その6カクカクする原因は 対策案 1. 位置を中間補正する。
  • 26. UNITY同士で通信 その6カクカクする原因は 対策案 1. 位置を中間補正する。 2. 全力で通信する。
  • 27. UNITY同士で通信 その6カクカクする原因は 対策案 1. 位置を中間補正する。 2. 全力で通信する。 Network.SendRate = 60; とかやると秒間で60回通信します。 ※ネットワークの負荷とかは知らないよ。
  • 28. UNITY同士で通信 その7キャラクターのスクリプトの注意点
  • 29. UNITY同士で通信 その7キャラクターのスクリプトの注意点 networkView.isMine これはスクリプトを実行するオブジェクトが自分かどうか を判断するプロパティ。
  • 30. UNITY同士で通信 その7キャラクターのスクリプトの注意点 networkView.isMine これはスクリプトを実行するオブジェクトが自分かどうか を判断するプロパティ。 if(networkView.isMine == true) { // キャラクター操作 } と、しておかなければ自分以外まで動いてしまいま
  • 31. ご静聴ありがとうございました

×