在Unity(C#)中在运行时以程序方式放置对象

时间:2015-04-07 10:35:38

标签: c# unity3d runtime procedural

我希望我的游戏中有石块,在地形上铺设。然后玩家可以拿起这些石头。我的地形相当庞大(统一术语大约5000x5000)。我不认为将数百(甚至数千)石头作为游戏对象放置是最佳选择。由于我的游戏是多人游戏,我不能只是在玩家走路时实例化石头,因为两个玩家相互接近会看到石头产生。我也不能将石头添加到我的地形的树木中并将它们放在一起,因为它会与我的砍树和砍伐剧本相冲突。

我心中的解决方案是以某种方式在没有玩家注意的情况下以程序方式放置石头。这是最好的方法吗?如果是这样,怎么样?

我不需要任何代码,但如果有人可以概述一下他们会如何处理这个问题呢?我无法想到最好的方法......任何想法都会很棒!

1 个答案:

答案 0 :(得分:1)

我不久前就自己解决了这个问题。 我建议阅读"线性同余发生器" 1

它们用于生成伪随机数。但随机数取决于给定的种子。因此,如果每个玩家拥有相同的种子,则应该可以在玩家行走时生成宝石。由于同一种子,所有玩家都会在x,y位置获得相同的随机数,并且这样他们都会在相同的位置生成相同的石头。