Unity+PUN: "Instantiate" 有时会创建太多游戏对象
Unity+PUN: "Instantiate" sometimes creates too many GameObjects
我正在开发一款赛车游戏,目前在加载赛道场景后实例化赛车时遇到问题。
我有一个本地 "RaceGuard" 基本上调用了这个方法:
public void CreateLocalPlayer()
{
while (!PhotonNetwork.IsConnectedAndReady)
{
}
GameObject Player = PhotonNetwork.Instantiate(prefabName, Vector3.zero, Quaternion.identity);
PhotonView pV = Player.GetComponent<PhotonView>();
Player.transform.position = raceGuard.singleRaceStart1To7[pV.OwnerActorNr - 1].position;
Player.transform.rotation = raceGuard.singleRaceStart1To7[pV.OwnerActorNr - 1].rotation;
}
现在,我在 Unity 中构建游戏并 运行 它和 运行 游戏的第二个实例。
我在测试这个的时候,一般会遇到两种情况:
1] 一切如期进行:两场比赛的双方球员都在正确的位置。
2]一个游戏只有一辆车[本地玩家],而另一个游戏在场景中有3辆车[本地玩家,然后两个远程玩家在同一地点产生]。
我很难找到这个问题的原因,也很难调试,因为我只能单步执行 Unity 实例中的代码,但没有任何看起来可疑或抛出错误的地方。
包括一些打印件,我可以看到 "CarCreated" 方法在故障情况下被调用了 3 次,但我不知道为什么。
也许我犯了一些非常基本的错误。因为这是我第一次创建多人游戏,所以我看了教程,用谷歌搜索等,但没有找到任何能描述我的问题的东西。
我要确保的第一件事是,场景中的 "RaceGuard" 脚本实例不会超过 1 个。不过我不认为这是你的问题。
我认为最有可能的问题是由于场景加载,您发布的方法被执行了多次。这是另一个有类似问题的人:https://forum.photonengine.com/discussion/13198/new-players-spawning-twice-on-existing-players
因此请确保不要多次加载场景。
希望这些建议之一能解决您的问题。如果没有关于项目设置的更多信息,这可能很难调试。
我正在开发一款赛车游戏,目前在加载赛道场景后实例化赛车时遇到问题。
我有一个本地 "RaceGuard" 基本上调用了这个方法:
public void CreateLocalPlayer()
{
while (!PhotonNetwork.IsConnectedAndReady)
{
}
GameObject Player = PhotonNetwork.Instantiate(prefabName, Vector3.zero, Quaternion.identity);
PhotonView pV = Player.GetComponent<PhotonView>();
Player.transform.position = raceGuard.singleRaceStart1To7[pV.OwnerActorNr - 1].position;
Player.transform.rotation = raceGuard.singleRaceStart1To7[pV.OwnerActorNr - 1].rotation;
}
现在,我在 Unity 中构建游戏并 运行 它和 运行 游戏的第二个实例。 我在测试这个的时候,一般会遇到两种情况:
1] 一切如期进行:两场比赛的双方球员都在正确的位置。
2]一个游戏只有一辆车[本地玩家],而另一个游戏在场景中有3辆车[本地玩家,然后两个远程玩家在同一地点产生]。
我很难找到这个问题的原因,也很难调试,因为我只能单步执行 Unity 实例中的代码,但没有任何看起来可疑或抛出错误的地方。 包括一些打印件,我可以看到 "CarCreated" 方法在故障情况下被调用了 3 次,但我不知道为什么。
也许我犯了一些非常基本的错误。因为这是我第一次创建多人游戏,所以我看了教程,用谷歌搜索等,但没有找到任何能描述我的问题的东西。
我要确保的第一件事是,场景中的 "RaceGuard" 脚本实例不会超过 1 个。不过我不认为这是你的问题。
我认为最有可能的问题是由于场景加载,您发布的方法被执行了多次。这是另一个有类似问题的人:https://forum.photonengine.com/discussion/13198/new-players-spawning-twice-on-existing-players
因此请确保不要多次加载场景。
希望这些建议之一能解决您的问题。如果没有关于项目设置的更多信息,这可能很难调试。