Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class ComandControllers : MonoBehaviour {
public string Name = "";
public string Comand = "";
public string ID;
public string SComand = "";
public int randomcom = 1;
void Start () {
ID = PlayerPrefs.GetString("playerName");
networkView.RPC("ServerComSend", RPCMode.All,ID);
if(Input.GetKey(KeyCode.Delete)){randomcom = 2;networkView.RPC("ServerComSend", RPCMode.All,ID);}
}
void Update () {
if(Comand == "blue"){renderer.material.color = Color.blue;}
if(Comand == "red"){renderer.material.color = Color.red;}
if(randomcom >=3){randomcom = 1;}
}
[RPC]
void ClientComSend(string name, string scomand)
{
if(ID == name){Name = name;Comand = scomand;}
}
[RPC]
void ServerComSend(string name)
{
if(Network.isServer)
{
if(randomcom==1){SComand = "blue";}
if(randomcom==2){SComand = "red";}
networkView.RPC("ClientComSend", RPCMode.All,name,SComand);
}
}
using System.Collections;
public class ComandControllers : MonoBehaviour {
public string Name = "";
public string Comand = "";
public string ID;
public string SComand = "";
public int randomcom = 1;
void Start () {
ID = PlayerPrefs.GetString("playerName");
networkView.RPC("ServerComSend", RPCMode.All,ID);
if(Input.GetKey(KeyCode.Delete)){randomcom = 2;networkView.RPC("ServerComSend", RPCMode.All,ID);}
}
void Update () {
if(Comand == "blue"){renderer.material.color = Color.blue;}
if(Comand == "red"){renderer.material.color = Color.red;}
if(randomcom >=3){randomcom = 1;}
}
[RPC]
void ClientComSend(string name, string scomand)
{
if(ID == name){Name = name;Comand = scomand;}
}
[RPC]
void ServerComSend(string name)
{
if(Network.isServer)
{
if(randomcom==1){SComand = "blue";}
if(randomcom==2){SComand = "red";}
networkView.RPC("ClientComSend", RPCMode.All,name,SComand);
}
}
но почему то для меня этот скрипт меняет цвет для всех префабов, где ошибка ? читал про OnSerializeNetworkView вообще непонял как это происходит.