React Viro,在发行时单击很长时间即可启动

时间:2019-03-15 11:41:06

标签: android ios react-native

我目前正在使用React Native版本0.55和react-viro版本2.12.0开发Ar应用程序。这就像应用程序中的宝可梦一样,在AR页面上,有可点击的项。 当用户单击它时,它将打开一个模式。 在开发人员中(这是完整的命令:adb reverse tcp:8081 tcp:8081 && react-native run-android --variant = Ardebug),它立即出现。 但是,当我们将其捆绑为发布模式时,该模式至少需要一分钟的时间出现。

页面代码为:

 <ViroARScene onTrackingUpdated={this._onInitialized}>
        <ViroSpotLight
          innerAngle={5}
          outerAngle={45}
          direction={[0, -1, -0.2]}
          color="#ffffff"
          castsShadow={true}
          influenceBitMask={2}
          shadowMapSize={2048}
          shadowNearZ={2}
          shadowFarZ={5}
          shadowOpacity={0.7}
        />
        <ViroAmbientLight color="#ffffff" />
        <ViroNode ref={_setARNodeRef} onClick={this.tryGain}>
          <Viro3DObject
            position={[x, 0, z]}
            scale={[0.5, 0.5, 0.5]}
            rotation={[0, 0, 0]}
            source={require(`${ROOT_3D_ASSET}chest/coffre_bois_obj.obj`)}
            resources={[

              require(`${ROOT_3D_ASSET}chest/coffre_bois_mtl.mtl`),
              require(`${ROOT_3D_ASSET}chest/wood.jpg`),
              require(`${ROOT_3D_ASSET}chest/wood2.jpg`),
              require(`${ROOT_3D_ASSET}chest/gold.jpg`)
            ]}
            onLoadStart={this._onLoadStart}
            onLoadEnd={this._onLoadEnd}
            onError={this._onError}
            lightReceivingBitMask={3}
            shadowCastingBitMask={2}
            type="OBJ"
          />
        </ViroNode>
      </ViroARScene>

点击事件的功能是

tryGain = _ => {
    this.clickInterval=setInterval(() => (this.hasClicked = false), 500);// in case click, goes nowherer
    if (this.hasClicked) {
      return;
    }

    handleTryGain.call(this, this.props.activeGainPoiId, this.props.isDemo);
    this.hasClicked = true;

  };

这是相同的代码,所以我不确定为什么会有如此大的差异。有人有同样的问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

所以我发现了看着原木猫的问题。由于这些道具onLoadStart,onLoadEnd && onError,我正在输出错误日志,该日志使应用程序降低,从而导致延迟。我通过简单地在Viro3DObject

中删除它们来解决了这个问题。
<Viro3DObject ... same 
-> Deleted onLoadStart={this._onLoadStart} 
-> Deleted onLoadEnd={this._onLoadEnd} 
-> Deleted onError={this._onError} lightReceivingBitMask={3} shadowCastingBitMask={2} type="OBJ" />

仍然有一些错误,但这并不影响应用程序