【问题标题】:Why does this code to stash babylonjs meshes cause an error?为什么这个隐藏 babylonjs 网格的代码会导致错误?
【发布时间】:2019-05-30 06:05:45
【问题描述】:

我正在加载一个包含数字网格的 .obj 文件。我想根据其名称存储每个网格,以便稍后创建实例。

如果我删除实际上将网格存储在“原始”中的行,则代码可以正常工作。但是,当我将其留在其中时,似乎在巴比伦内部引发了异常并捕获了消息“BJS - [12:17:50]:无法从 /threedee/InputMonoNumerics.obj 加载资产:onSuccess 回调错误”。

originals = {}
BABYLON.SceneLoader.LoadAssetContainer(assetPath, assetName, scene, (container) ->
  container.addAllToScene()
  for i in[0...scene.meshes.length]
    mesh = scene.meshes[i]
    if (mesh.name.startsWith('numeral'))
      character = mesh.name.charAt('numeral_'.length)
      originals["_#{character}"] = mesh
      console.log("This line is never reached.")
      mesh
)

这是 coffeescript 源 - 但转译后的代码看起来与您预期的完全一样

【问题讨论】:

  • 看起来有些东西在回调中抛出错误,但它被库吞没了。也许mesh.name 是非字符串?要么console.log 一切,要么在回调中使用try...catch 来查看原始错误

标签: coffeescript babylonjs


【解决方案1】:

是的 - 非常感谢 caffeinated.tech - 显然(现在你要提到它)尝试并抓住以查看潜在的错误!

... 那是我为了帮助而投入的调试语句通过在 Babylon Mesh 对象上调用 JSON.stringify 引发了错误——这些对象是循环的——我认为是因为它们引用了它们的父对象,这当然有对 Mesh 的引用。

不再清楚最初的问题是什么 - 但这不是问题。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多