相机移动时实例化游戏对象

Posted

技术标签:

【中文标题】相机移动时实例化游戏对象【英文标题】:Instantiate GameObject while Camera Moving 【发布时间】:2021-10-18 05:41:42 【问题描述】:

我正在开发我的 2D 游戏,我的主摄像机从左到右水平移动。我不想在场景开始时实例化所有游戏对象,而是希望在相机靠近它们的 x 位置时生成它们。 我有一个这样的 JSON 来存储需要在运行时生成的每个 GO 的位置​​:


    "apple":
        "xpos":13,
        "ypos":2
    ,
    "banana":
        "xpos":40,
        "ypos":2
    ,
    "pear":
        "xpos":25,
        "ypos":2
    

当相机的 x 位置等于或大于每个项目的 x 位置时,是否有人有解决方案来触发实例化?假设相机从 x 位置 0 开始移动。提前谢谢您!

【问题讨论】:

使用 update() 检查 x ? 你的意思是在更新里面放一个循环来不断检查玩家移动相机的时候吗? 是的,检查相机移动,你可以组一些组来提高性能,而不是每次都foreach所有对象。 【参考方案1】:

一种解决方案可能是:

获取屏幕中心(使用空的gameObject 作为相机的子代或任何其他适合您的方法) 在 Update() 方法中检查empty GOX positionxpos 之间的距离,如果距离在Screensize.x/2(Screensize.x/2 + offset) 之间,则检查instantiate

【讨论】:

以上是关于相机移动时实例化游戏对象的主要内容,如果未能解决你的问题,请参考以下文章

实例化时引用对象

在 OpenGL 中实例化数百万个对象

在 Unity 中销毁实例化游戏对象的问题

实例化对象出现在层次结构中但不在场景中

获取其他玩家实例化的游戏对象 Unity Photon

在 OpenGL 中实例化数百万个对象:提高每秒帧数