#react-native #react-native-android #react-native-ios #virtual-reality
#react-native #react-native-android #react-native-ios #виртуальная реальность
Вопрос:
Я использую react-viro для включения поддержки AR в мое приложение. Интеграция с Viro идеальна, я могу видеть текст в режиме AR. Но когда я пытаюсь включить любой 3D-объект с помощью Viro3DObject, я получаю сообщение об ошибке «Модуль не найден из (локальный путь к моему файлу)». Когда я загружаю тот же ресурс с сервера, я могу загрузить его с помощью его URI.
Согласно документации React-Viro, React-native по умолчанию не поддерживает 3D-файлы с расширениями .obj и .mtl. Итак, я последовал этому подходу, чтобы включить поддержку. Но все же та же ошибка сохраняется.
https://docs.viromedia.com/docs/importing-assets#adding-asset-types
<Viro3DObject
source={require('./emoji_vow/emoji_vow.vrx')}
position={[0, .2, 0]}
scale={[.2, .2, .2]}
type="VRX"
lightReceivingBitMask={3}
shadowCastingBitMask={2}
transformBehaviors={['billboardY']}
resources={[require('./emoji_wow/emoji_wow_diffuse.png'),
require('./emoji_wow/emoji_wow_specular.png'),
require('./emoji_wow/emoji_wow_normal.png')]}/>
Ответ №1:
добавить metro.config.js
'use strict';
const { getDefaultConfig } = require("metro-config");
module.exports = (async () => {
const {
resolver: { assetExts }
} = await getDefaultConfig();
return {
resolver: {
assetExts: [...assetExts, "obj", "mtl", "JPG", "vrx", "hdr", "gltf", "glb", "GLB", "bin", "arobject", "gif"]
}
};
})();
должно быть хорошо
Комментарии:
1. Вау, спасибо! По-видимому, функция async была ключевой, я пытался решить эту проблему в течение нескольких часов. Теперь я даже могу видеть большинство объектов, отображаемых в симуляторе ios.