【问题标题】: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所有对象。

标签: c# unity3d


【解决方案1】:

一种解决方案可能是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2020-09-23
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多