我想要玩家选择的汽车衍生.......
但问题是,每当其他本地球员选择。所有的汽车是相同的(意思是球员2和球员3)。
但是主客户端的车没有问题(意思是主机玩家),车和他选择的是一样的。
这是我的代码.....
两个剧本在不同场景中。
public GameObject Player;
public GameObject Player2;
public GameObject Player3;
Vector2 randomPosition = new Vector2(Random.Range(minx, maxX), Random.Range(minY, maxY));
string car = PlayerPrefs.GetString("getcar");
if(car== "lamborgini")
{
PhotonNetwork.Instantiate(Player.name, randomPosition, Quaternion.identity);
}
else if (car == "lam")
{
PhotonNetwork.Instantiate(Player2.name, randomPosition, Quaternion.identity);
}
else if (car == "gini" )
{
PhotonNetwork.Instantiate(Player3.name, randomPosition, Quaternion.identity);
}
else
{
PhotonNetwork.Instantiate(Player3.name, randomPosition, Quaternion.identity);
}
下面的代码中,玩家通过名称enter image description here选择汽车
2条答案
按热度按时间ykejflvf1#
string car = PlayerPrefs.GetString("getcar");
获取本地值。从代码中,还不清楚它是如何工作的,但有两个(可能更多,但我现在想到了这两个)有意义的选项:PhotonNetwork.LoadScene()
之后,每个人都发送他们选择的汽车(ID、名称等)发送给同样使用PunRPC和RpcTarget.AllBuffered的每个人。PhotonNetwork.LoadScene()
之后当玩家加入时,主机向每个人发送所选择的值(也是PunRPC,并且应该是RpcTarget.AllBuffered)。这两种情况都应该使用RpcTarget.AllBuffered,如果稍后有人连接的话。
2uluyalo2#
解决问题的小子!
我使用静态变量y来获取或设置除player prefs之外的值,我不知道为什么player prefs不能在每次player生成时更新,这就是我使用静态变量的原因。
谢谢你们帮我