changeset 40:d8a999b69da4

update Mirror chapter
author riono <e165729@ie.u-ryukyu.ac.jp>
date Wed, 09 Feb 2022 18:54:48 +0900
parents 78fa97061c97
children 6c9a28e13a7d
files Paper/chapter/2-RewriteCS.tex Paper/chapter/3-ChristieSharp.tex Paper/master_paper.pdf Paper/src/Library/MirrorExample.cs
diffstat 4 files changed, 17 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/chapter/2-RewriteCS.tex	Wed Feb 09 04:00:56 2022 +0900
+++ b/Paper/chapter/2-RewriteCS.tex	Wed Feb 09 18:54:48 2022 +0900
@@ -24,7 +24,7 @@
 
 \begin{figure}[htb]
   \begin{center}
-      \includegraphics[width=130mm]{images/PUN2Connection.pdf}
+      \includegraphics[width=115mm]{images/PUN2Connection.pdf}
   \end{center}
   \caption{PUN2のServer接続}
   \label{fig:PUN2serverconnect}
@@ -41,8 +41,6 @@
 各リージョンのMaster Serverは完全に分離しており、マッチメイキングはそれぞれのMaster Serverでのみ可能である。
 Game Serverでは、Master Serverで作成された各ルームの管理が行われおり、実際にClient同士の通信を行ってゲームプレイを可能としているのはGame Serverである。
 
-\newpage
-
 % 開発面でのできること  アタッチするだけとか
 % 制限面 20mucみたいな 500messageとか
 % ネット環境がないとlocal通信すらできない
@@ -75,6 +73,7 @@
 これらの制限を超えて利用する場合には、別途料金や有料プランに加入する必要が発生する。
 
 
+
 \section{Mirror}
 MirrorはUnityで使用できるOSSのネットワークライブラリである。
 PUN2と同様にPC間の同期を自動で行い、主にMMO規模のネットワークを想定して開発が行われている。
@@ -95,19 +94,27 @@
 HostではServerと同時にLocal Clientが立ち上がる。
 他のClinetはServerに接続を行うことで同期が可能となる。
 ClinetはServerに対して操作やデータを送信し、Serverでの処理がClientに同期され反映される仕組みになっている。
-また、Mirrorでは公式Serverなどのサービスが用意されていないため、自前でServerを用意する必要がある。
 
+\newpage
 
 \lstinputlisting[label=src:MirrorExample, caption=Mirrorの使用例]{src/Library/MirrorExample.cs}
 
 ソースコード\ref{src:MirrorExample}はMirrorを使用して、プレイヤーを表示、操作する例である。
 NetworkBehaviourはMonoBehaviorを継承して作成されており、ネットワーク上で動作させる処理に継承させる必要がある。
+OnStertServerメソッドはServerでこのGameObjectが生成された際に実行される。
+このような様々なcallbackがNetworkBehaviourには用意されている。
+また、フィールド変数にSyncVar attributeを付与することで自動的に変数を同期可能にしている。
+SyncVar attributeによってサポートされている型はC\#のプリミティブ型やstring、Unity APIから提供されているVector3やQuaternion、
+Mirrorから提供されているSyncListやSyncDictなどのリストや辞書である。
+
 10行目のCommand attributeを関数に付与することで、ClientがServerに対してこの関数を呼び出すことが可能になる。
 Server側で処理が行われ、その結果の状態がClientへ同期される。
 
-また、SyncVar attirbuteをフィールド変数に付与することで自動的に、データが同期されるようになる。
-サポートされている型はC\#のプリミティブ型やstring、Unity APIから提供されているVector3やQuaternion、
-Mirrorから提供されているSyncListやSyncDictなどのリストや辞書である。
+
+Mirrorには上記のような通信フレームワークとして便利な機能が用意されており、OSSなためプロジェクトに合わせて自由に機能の拡張が可能である。
+一方で公式Serverなどのサービスが用意されていないため、自前でServerを用意する必要がある。
+そのため、LAN上で通信を行う場合には特に問題ないが、インターネット上に公開を手軽に行うことができない。
+
 
 \section{ChristieをC\#に書き換える意義}
 
--- a/Paper/chapter/3-ChristieSharp.tex	Wed Feb 09 04:00:56 2022 +0900
+++ b/Paper/chapter/3-ChristieSharp.tex	Wed Feb 09 18:54:48 2022 +0900
@@ -6,12 +6,4 @@
 
 \lstinputlisting[label=src:CSStartCGExample, caption=Chrisite SharpにおけるStartCodeGearの記述例]{src/cs/StartCountUp.cs}
 \lstinputlisting[label=src:CSCGExample, caption=Chrisite SharpにおけるCodeGearの記述例]{src/cs/CountUpper.cs}
-\lstinputlisting[label=src:CSCountExample, caption=Chrisite SharpにおけるDGとして送信されるオブジェクトのクラス]{src/cs/CountObject.cs}
-
-\section{Topology Manager}
-% 移植時の問題
-
-
-\section{2nd key}
-% TopologyManagerでのHashMapを全て送っている問題
-
+\lstinputlisting[label=src:CSCountExample, caption=Chrisite SharpにおけるDGとして送信されるオブジェクトのクラス]{src/cs/CountObject.cs}
\ No newline at end of file
Binary file Paper/master_paper.pdf has changed
--- a/Paper/src/Library/MirrorExample.cs	Wed Feb 09 04:00:56 2022 +0900
+++ b/Paper/src/Library/MirrorExample.cs	Wed Feb 09 18:54:48 2022 +0900
@@ -2,9 +2,9 @@
     [SyncVar] float speed = 1f;
 
     public override void OnStartServer() {
-        speed = Random.Range(0f, 10f);
+        speed = Random.Range(1f, 10f);
     }
-    
+
     void FixedUpdate() {
         if (isLocalPlayer) {
             float x = Input.GetAxis("Horizontal");