我在联合公司工作了一个月。我是新的团结和C#,在团结之前,我工作的其他游戏引擎。无论我做的是无限运行游戏,我都写了随机道路生成器。道路发电机运行良好,但我有更新道路的问题。我可以这样手动更新道路。如何自动更新?
void Update()
{
if(Input.GetKeyDown(KeyCode.A)) UpdateRoad();
}我的UpdateRoad方法添加这样的路(我使用对象池)。

我想更新后,林克路,OnExitTrigger或什么我不知道。我该怎么做呢?

发布于 2015-03-30 22:19:50
您需要实现对象池。
我建议您先设计对象,这样您就可以进行测试了。或者如果不使用,库存块原语的Unity3D作为您的预制。我希望你已经知道预制板了。这是制造无限流道的主要关键。实际上是制作任何游戏的主要核心。
预制板是一个对象文件,您可以在其中实例化它的一个位置。因此,假设您将生成一个可步行的平台,然后生成一个Pit。你可能会想把它们堆在一起。
现在产生它们很容易。你不想在更新中去吗?方法,因为您很可能不会更新,但是您将根据您的游戏逻辑,进一步堆栈前面正在发生的事情。
为了进一步理解这一点,Unity3D已经做了一个项目或详细的教程。它可能是2D的,但它将是相同的,如果你要将Collider2D改为Collider <-这在你的情况下是很重要的。
https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/infinite-runner
更新
您需要创建一个不可见的对象。意味着触发。然后在触发时调用您的方法UpdateRoad();
https://unity3d.com/learn/tutorials/modules/beginner/physics/colliders-as-triggers
关于触发器的详细视频。
发布于 2019-11-05 19:22:40
如果我正确理解了您的需求,您可以创建空对象名为SpawnPoint,根据需要设置产卵点的位置(在摄像机视图之外),然后是Instanciate随机预制板的道路。有关TriggerExit -它可以用来摧毁“旧的道路”。但是要让它正常工作,不要忘记在你的物体上设置对撞机和刚体。不要添加collider2D或Rigitbody2d,添加和使用Box对撞机和Rigitbody组件
https://stackoverflow.com/questions/29357111
复制相似问题