C#
Unity
Photon

Unityのネットワーク対戦で相手にデータを送信する最も単純で簡単な方法

Unity2017+C#でやってます。PhotonNetworkを使えばUnityでネトゲ開発も余裕です!

Photonで値同期

まず、PhotonはAssetStoreからImportされた状態+PhotonServerに自動でログインと部屋にINする設定が前提としてある。まずここがわからないなら最初に補足から見てください。

以下がソース↓

SystemControl.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SystemControl:MonoBehaviour{
private PhotonView _PhotonViewControl;
//PhotonのRPCを使うときのコントローラ。こいつを使って相手に値を送る。

private int[] sendData ={123,666666,2121212 };//送るデータ
private int[] ReciveData = {0,0,0};//受信データ




private void Awake(){ //初期化

    _PhotonViewControl = GetComponent<PhotonView>();
  //Inspectorに突っ込んでおいたComponentからPhotonViewを引っ張りだす
}

public void Send_ToOthers(){//送信メソッド

    _PhotonViewControl.RPC("SendFunc",PhotonTargets.Others,sendData);
    //RPC([使うメソッドの名前],[メソッドを発動させる対象],[メソッドの引数に突っ込む値])
}

[PunRPC]//RPCで呼び出したいメソッドは、メソッドの前にこいつを必ず書いとく
private void SendFunc(int[] SendedData){//相手が送ってきたときに自動的に発動

    ReciveData = SendedData;
    //相手から来たデータを自分の受け皿に上書き保存

}




}//end this class

実験

SystemControlとPhotoviewがちゃんとComponetに追加されていることを確認。↓
SnapCrab_NoName_2017-9-2_23-56-21_No-00.png

適当に送信メソッドのボタン作ってとGUI.Labelで反応を試そう↓

SnapCrab_NoName_2017-9-2_23-55-33_No-00.png

ボタン押した後↓

SnapCrab_NoName_2017-9-2_23-55-58_No-00.png

これだけでも、ちゃんと送信されてます。おわり。 
今回は配列を送信したけど、Stringでもintでも当然boolでも大丈夫みたい。ListとQueueは非対応なので、ToArrayして送る必要があります。

どうやって動いてる?

PhotonRPCは、「Targetで指定した人に指定したRPCメソッドを発動させる」というのが前提としてあります。そして、引数も指定できます。今回はTargetをOthersとして、自分以外の部屋にいる全員が引数付きでメソッドを発動します。
そうやって、引数で届いた相手のデータを自分の持ってる受け皿にコピーして保存しておけば、受信ができるという形になります。
あと、Objectの位置共有でこの手法を用いることは推奨されていません
当然ですが、それ用のPhotonコンポーネントなどもあるので、そちらをご利用ください。

使いどころさん

自分はカードゲームとか、ボードゲームとかターン制のゲームにでも使ってました。
OnSerializeなんちゃらの手法はいっぺんに全部共有だし、ずれるわろくなことがない。
こいつは、共有したいやつだけをRPCメソッドに梱包しちゃえばいいので、何個も作れて使い分けもできるので、使い勝手がいいです。

補足

ネトゲ作りたいんだけどPhotonとかServerにログインってまずなに・・・?ってところだけど、
Unityでネトゲを作るにはUNetとPhotonNetworkServiceというのがあります。PhotonNetworkは安いしリファレンスが分かりやすいし、利用者も多いので詰まりにくいのがいい点。100人同時接続ロビーも、月額300円で運営できますよ。
詳しい実装方法、利用はこちらから

https://photonengine.jp/
Photon公式サイト

利用についてはこちらの記事が非常にわかりやすいです。↓

http://www.urablog.xyz/entry/2016/09/13/080115
僕もPhotonを使いたい author-うら干物書き

以上。