C# 在统一中同时重生2个玩家对象
我正在创建一个统一的竞技场风格的战斗游戏,我有一个重生的球员的问题。下面是它现在的工作原理 当一个玩家被杀死时,它会被放入一个被杀死的玩家列表中,然后被重生,它的玩家对象也会被销毁。然后,游戏在被杀玩家列表中循环,选择一个随机可用的产卵点,然后在那里重生玩家。一个可用的繁殖点是任何不是由玩家在其繁殖区域内触发的繁殖点 当两个玩家同时死亡,或者至少非常接近于同一时间,并且随机选择的繁殖点最终是相同的,因为它没有足够的时间来处理触发。当这种情况发生时,所有unity都崩溃了,我必须完全重新启动它C# 在统一中同时重生2个玩家对象,c#,unity3d,game-physics,C#,Unity3d,Game Physics,我正在创建一个统一的竞技场风格的战斗游戏,我有一个重生的球员的问题。下面是它现在的工作原理 当一个玩家被杀死时,它会被放入一个被杀死的玩家列表中,然后被重生,它的玩家对象也会被销毁。然后,游戏在被杀玩家列表中循环,选择一个随机可用的产卵点,然后在那里重生玩家。一个可用的繁殖点是任何不是由玩家在其繁殖区域内触发的繁殖点 当两个玩家同时死亡,或者至少非常接近于同一时间,并且随机选择的繁殖点最终是相同的,因为它没有足够的时间来处理触发。当这种情况发生时,所有unity都崩溃了,我必须完全重新启动它 我
我假设为了解决这个问题,我需要防止Unity同时产生它们,但我认为通过循环列表可以解决这个问题。我应该怎样才能更安全地繁殖两个同时死亡的玩家呢 这是典型的队列示例,在多线程应用程序中也会发生同样的情况。在这里您可以做两件事:
希望有帮助:)这是典型的队列示例,在多线程应用程序中也会发生同样的情况。在这里您可以做两件事:
希望它有帮助:)我解决了我的问题,我可以用随机繁殖点来保持它。这个问题显然与两名玩家同时死亡无关,而与一名玩家在一个点上死亡有关。发生这种情况时,它不会运行onTiggerLeave()方法,因此即使没有任何可用的生成点,也不会将其计算为可用的生成点 我修正了这个问题,让每个繁殖点都有一个触发它的所有游戏对象的列表,这些对象会随着玩家进出空间而改变。然后当玩家被杀时,它会检查每个点的列表,看看是否包含玩家的游戏对象。如果它找到了匹配项,那么我将取消对繁殖点的迁移,它将显示为可用
我将要做的一个更好的方法是检查列表,看看在繁殖点的列表中是否有任何游戏对象,并且只有在没有游戏对象的情况下才可用。因为当前方式不考虑其他对象也会触发该点。我解决了我的问题,并且能够使用随机生成点来保持它。这个问题显然与两名玩家同时死亡无关,而与一名玩家在一个点上死亡有关。发生这种情况时,它不会运行onTiggerLeave()方法,因此即使没有任何可用的生成点,也不会将其计算为可用的生成点 我修正了这个问题,让每个繁殖点都有一个触发它的所有游戏对象的列表,这些对象会随着玩家进出空间而改变。然后当玩家被杀时,它会检查每个点的列表,看看是否包含玩家的游戏对象。如果它找到了匹配项,那么我将取消对繁殖点的迁移,它将显示为可用 我将要做的一个更好的方法是检查列表,看看在繁殖点的列表中是否有任何游戏对象,并且只有在没有游戏对象的情况下才可用。因为当前方式不考虑其他也触发该点的对象