我目前正在使用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;
};
这是相同的代码,所以我不确定为什么会有如此大的差异。有人有同样的问题吗?
谢谢
答案 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" />
仍然有一些错误,但这并不影响应用程序