无限道路更新
Infinite Road Update
我在 Unity 上工作了一个月。我是 Unity 和 C# 的新手,在 Unity 之前我曾使用过其他游戏引擎。无论我在做什么无限 运行 游戏,我都会编写随机道路生成器。道路生成器运行良好,但我在更新道路时遇到问题。我可以像这样手动更新道路。如何自动更新?
void Update()
{
if(Input.GetKeyDown(KeyCode.A)) UpdateRoad();
}
我的 UpdateRoad 方法像这样添加道路(我正在使用对象池)。
我想在 Link 路之后更新,OnExitTrigger 或我不知道的东西。我该怎么做?
您需要实施对象池。
我建议您先进行对象设计,以便进行测试。或者,如果不使用,Unity3D 的库存块基元作为您的预制件。我希望你已经知道预制件。它是制作无限跑道的主要关键。实际上是制作各种游戏的主要内核。
Prefabs 是一个目标文件,您可以在其中实例化它。因此,假设您将生成一个 Flat walkable,然后生成一个 Pit。您可能希望将它们堆叠在一起。
现在生成它们很容易。您不想进行更新吗?方法,因为您很可能不会更新,但您将根据您的游戏逻辑进一步堆叠前面发生的事情。
为了进一步了解这一点,Unity3D已经制作了一个项目或Fully Detailed tutorial。它可能是二维制作的,但如果您要将 Collider2D 更改为 Collider <- 这对您来说很重要。
https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/infinite-runner
更新
您需要创建一个不可见的对象。意思是触发器。
然后在 Trigger 上调用您的方法 UpdateRoad();
https://unity3d.com/learn/tutorials/modules/beginner/physics/colliders-as-triggers
有关触发器的详细视频。
如果我正确理解了您的需求,您可以创建一个名为 SpawnPoint 的空对象,根据需要设置生成点的位置(在摄像机视图之外),然后实例化道路的随机预制件。关于 On TriggerExit - 它可用于销毁 "old piece of road"。但是要让它正常工作,请不要忘记为您的对象设置对撞机和刚体。不要添加 collider2D 或 Rigitbody2d,添加并使用 Box Collider 和 Rigitbody 组件
我在 Unity 上工作了一个月。我是 Unity 和 C# 的新手,在 Unity 之前我曾使用过其他游戏引擎。无论我在做什么无限 运行 游戏,我都会编写随机道路生成器。道路生成器运行良好,但我在更新道路时遇到问题。我可以像这样手动更新道路。如何自动更新?
void Update()
{
if(Input.GetKeyDown(KeyCode.A)) UpdateRoad();
}
我的 UpdateRoad 方法像这样添加道路(我正在使用对象池)。
您需要实施对象池。
我建议您先进行对象设计,以便进行测试。或者,如果不使用,Unity3D 的库存块基元作为您的预制件。我希望你已经知道预制件。它是制作无限跑道的主要关键。实际上是制作各种游戏的主要内核。
Prefabs 是一个目标文件,您可以在其中实例化它。因此,假设您将生成一个 Flat walkable,然后生成一个 Pit。您可能希望将它们堆叠在一起。
现在生成它们很容易。您不想进行更新吗?方法,因为您很可能不会更新,但您将根据您的游戏逻辑进一步堆叠前面发生的事情。
为了进一步了解这一点,Unity3D已经制作了一个项目或Fully Detailed tutorial。它可能是二维制作的,但如果您要将 Collider2D 更改为 Collider <- 这对您来说很重要。
https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/infinite-runner
更新
您需要创建一个不可见的对象。意思是触发器。 然后在 Trigger 上调用您的方法 UpdateRoad();
https://unity3d.com/learn/tutorials/modules/beginner/physics/colliders-as-triggers
有关触发器的详细视频。
如果我正确理解了您的需求,您可以创建一个名为 SpawnPoint 的空对象,根据需要设置生成点的位置(在摄像机视图之外),然后实例化道路的随机预制件。关于 On TriggerExit - 它可用于销毁 "old piece of road"。但是要让它正常工作,请不要忘记为您的对象设置对撞机和刚体。不要添加 collider2D 或 Rigitbody2d,添加并使用 Box Collider 和 Rigitbody 组件