1
我正在使用UNet。現場有兩名玩家。其中之一就是服務器其中之一就是客戶端。我可以用[Command]和[ClientRPC]獲得客戶端數據,但是我無法將數據從服務器發送到客戶端,我該如何解決這個問題? 注意:服務器也是一個播放器。如何使用Unity Unet將數據從服務器發送到客戶端
下面是從客戶端到服務器的代碼我發送數據:
[Command]
void CmdSendDizilimToServer(string dizilim){
if (isLocalPlayer)
RpcSetPlayerDizilim(dizilim);
else
this.Sira = dizilim;
}
[ClientRpc]
void RpcSetPlayerDizilim(string dizilim){
this.Sira = dizilim;
}
'Dizilim' 是指 '序列'。 'Sira'的意思是'訂購'。
其實在服務器和客戶端都有自己的'Order'字符串。當遊戲開始時,一個gameobject產生了。我想服務器獲取客戶'訂單'腳本(我可以做到這一點)客戶端獲得服務器'訂單'字符串(我不能這樣做)。我該如何解決這個問題?
這是我的球員產生了腳本對象:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.Networking;
public class MultiPlayerOyunKontrol : NetworkBehaviour {
CreateCharacter cc;
public string Sira;
GameObject EnemyObject;
[SyncVar (hook = "DizilimGetir")]
string OyuncuDizilimi;
// Use this for initialization
void Start() {
if (!isLocalPlayer)
{
this.gameObject.name = "Oyuncu2";
OyuncuDizilimi = PlayerPrefs.GetString("Player Dizilim");
}
else
gameObject.name = "Oyuncu1";
}
// Update is called once per frame
void Update() {
}
public override void OnStartLocalPlayer(){
//CmdSendNameToServer (PlayerPrefs.GetString("Player Name"));
CmdSendDizilimToServer (PlayerPrefs.GetString ("Player Dizilim"));
}
[Command]
void CmdDusmanAktif(){
RpcAktiflestir();
}
[Command]
void CmdSendNameToServer(string nameToSend)
{
RpcSetPlayerName(nameToSend);
}
[Command]
void CmdSendDizilimToServer(string dizilim){
if (isLocalPlayer)
RpcSetPlayerDizilim(dizilim);
else
this.Sira = dizilim;
}
[ClientRpc]
void RpcAktiflestir(){
EnemyObject = GameObject.FindGameObjectWithTag ("DusmanKarakterleri");
EnemyObject.SetActive (true);
}
[ClientRpc]
void RpcSetPlayerName(string name)
{
this.gameObject.name = name;
}
[ClientRpc]
void RpcSetPlayerDizilim(string dizilim){
this.Sira = dizilim;
}
void DizilimGetir(string dizilim) {
if(!isLocalPlayer)
this.Sira = dizilim;
}
}
我有類似的問題發佈在[這個問題](https://stackoverflow.com/questions/48487614/unity-networking-how-can-i-sync-vars-on-all-clients)。我看到了你的答案,但我不明白你如何從服務器讀取變量狀態。你能更好地解釋如何從客戶端檢索由服務器控制的對象的值嗎?在我的情況下,我不使用'OnGUI()'。 – SebasSBM