我刚接触react原生开发,我面临着一个相当大的问题。
我正在编写一个应用程序,通过BLE连接和接收数据。使用这些应用程序,我必须制作一个3D元素的动画。
我已经正确完成了BLE连接的所有部分,现在我在3D部分遇到了问题。
我使用react native**,但没有expo**,因为我了解到expo与BLE PLX包不兼容。现在我看到所有包都带有expo-cli和three.js。我下载了一个免费的3D model.obj,但当我尝试请求它时,应用程序找不到该文件。
这是我的\src\model\three.js
import { GLView } from "expo-gl";
import { View } from "react-native";
import { loadObjAsync, Renderer } from "expo-three";
import { Scene } from "three";
export const Three = (props) => {
async function onContextCreate(gl) {
const renderer = new Renderer({gl});
renderer.setSize(200, 200);
const scene = new Scene();
const obj = await loadObjAsync({
asset: require('./model.obj')
});
scene.add(obj);
// Setup an animation loop
const render = () => {
renderer.render(scene, camera);
gl.endFrameEXP();
};
render();
}
return (
<View>
<GLView onContextCreate={onContextCreate} />
</View>
);
};
在同一个文件夹中,我有model.obj(\src\model\model.obj)
这是我在package.json中添加的依赖项
"base64-arraybuffer": "^1.0.1",
"expo-gl": "^10.4.2",
"expo-gl-cpp": "^10.4.1",
"expo-three": "^5.7.0",
"react-native-unimodules": "^0.14.6",
"three": "^0.127.0"
型
这就是我得到的
Error: Unable to resolve module ./model.obj from D:\projects\AppName\src\model\three.js:
None of these files exist:
* src\model\model.obj(.native|.android.jsx|.native.jsx|.jsx|.android.js|.native.js|.js|.android.ts|.native.ts|.ts|.android.json|.native.json|.json)
* src\model\model.obj\index(.native|.android.jsx|.native.jsx|.jsx|.android.js|.native.js|.js|.android.ts|.native.ts|.ts|.android.json|.native.json|.json)
我一直在关注这条评论,但没有成功
救命啊!
1条答案
按热度按时间dced5bon1#
我终于想出了解决这个问题的办法。
我已经开始使用与React Native(https://docs.pmnd.rs/react-three-fiber/tutorials/v8-migration-guide)兼容的React-three-fiber。
我用gltfjsx转换jsx中的3D模型,然后通过javascript建模。
谢谢