Unityネットワーキングで自分の方向性を理解するための簡単なLANゲームを作成しています。プレーヤーがグリッド内の正方形をクリックすると、青色に変わるだけです。私の問題は、LAN ホストが四角形をクリックすると、ローカルでのみ更新され、クライアントは更新されないことです。クライアントが四角をクリックすると、ローカルで更新され、LAN ホストが更新されますが、他のクライアントは更新されません。すべてのグリッド ピースにネットワーク ID が関連付けられています
何か案は?
コードは次のとおりです。
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Player_Paint : NetworkBehaviour {
[SyncVar]GameObject syncGridPiece;
GameObject gridPiece;
void Update () {
Paint();
TransmitGridColours();
}
void Paint(){
if(isLocalPlayer && Input.GetMouseButtonDown(0)){
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if(hit.collider != null){
print(GameObject.Find (hit.transform.name));
gridPiece = hit.collider.transform.gameObject;
gridPiece.GetComponent<SpriteRenderer>().color = Color.blue;
}
}
}
[Command]
void CmdProvideGridColourToServer(GameObject gridPiece){
if(gridPiece){
syncGridPiece = gridPiece;
syncGridPiece.GetComponent<SpriteRenderer>().color = Color.blue;
}
}
[Client]
void TransmitGridColours(){
if(isLocalPlayer){
CmdProvideGridColourToServer(gridPiece);
}
}
}