• 正文概述
  • Name
    3 years ago
    2 years ago
    7 months ago
    4 years ago
    4 years ago
    7 months ago
    4 years ago
    7 months ago
    7 months ago
    7 months ago

    存储库文件导航

    babylonjs_viewer

    带有 BabylonJS Viewer for Flutter 的 3D 模型查看器。这个项目的灵感很大程度上来自model_viewer flutter pub 包。它的简单模型查看器,下一个版本,json 设置将被隐含

    Pub.dev

    https://pub.dev/packages/babylonjs_viewer

    安装

    这将向包的 pubspec.yaml 添加如下行(并运行隐式 dart pub get):

    dependencies:
      babylonjs_viewer: ^1.3.0
    

    1.3.0 中的新增功能

    • 将依赖项更新到 webview_flutter 4.10.0

    为什么我需要控制器

    控制器是可选的。您可以使用此控制器运行 Javascript 代码、返回、获取当前 url、更改 url 以及 WebView Flutter 允许的许多其他内容。 函数是可选的。您可以使用此参数将 javascript 代码添加到查看器。 示例可以在本文档底部找到

    要求

    在您的 Android 项目 (android/app/build.gradle) 上,将“minSdkVersion”设置为 19

    defaultConfig {
            applicationId "com.example.example"
            minSdkVersion 19
            targetSdkVersion 30
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
        }
    

    然后将行“android:usesCleartextTraffic=”true“”添加到您的 android 清单 (android/app/src/main/AndroidManifest.xml)

    <application
            android:label="example"
            android:icon="@mipmap/ic_launcher"
            android:usesCleartextTraffic="true">
    

    在iOS项目上,转到info.plist文件(ios/Runner/Info.plist),并添加以下行

    <key>io.flutter.embedded_views_preview</key>
    <true/>
    

    导入

    现在,在您的 Dart 代码中,您可以使用:

    import 'package:babylonjs_viewer/babylonjs_viewer.dart';
    

      class MyApp extends StatelessWidget {
        @override
        Widget build(BuildContext context) {
          return MaterialApp(
            home: Scaffold(
              appBar: AppBar(title: Text("BabylonJS Viewer")),
              body: BabylonJSViewer(
                src: 'https://models.babylonjs.com/boombox.glb',
              ),
            ),
          );
        }
      }
    

    资产、文件或 HTTP(s)

    HTTP(s)

      BabylonJSViewer(
        src: 'https://models.babylonjs.com/boombox.glb',
      ),
    

    文件

      BabylonJSViewer(
        src: 'file:///path/to/MyModel.glb',
      ),
    

    资产

      BabylonJSViewer(
        src: 'assets/MyModel.glb',
      ),
    

    控制器和函数示例

    添加到您的 pubspec.yamlwebview_flutter

    dependencies:
      webview_flutter: ^4.10.0
    

    将其添加到您的状态

    import 'package:webview_flutter/webview_flutter.dart';
    
    WebViewController? _controller;
    

    添加自定义 javascript 函数。这将打印到您的 flutter 控制台。

    BabylonJSViewer(
      controller: (WebViewController controller) {
        _controller = controller;
      },
      functions:
          '''function sayHello() { Print.postMessage("Hello World!"); }''',
      src:
          'https://models.babylonjs.com/boombox.glb',
    ),
    

    随时随地使用此功能

    ElevatedButton(
      onPressed: () {
          _controller?.runJavaScript('''
    sayHello();
    ''');
      },
      child: const Text("Run Function")),
    

    控制器和函数的用例

    您可以访问 babylonjs 查看器的查看器变量。您可以在那里找到所有方法

    在此示例中,向您展示如何切换自动旋转。

    BabylonJSViewer(
      controller: (WebViewController controller) {
        _controller = controller;
      },
      functions: '''
    function toggleAutoRotate(texture) {
    let viewer = BabylonViewer.viewerManager.getViewerById('viewer-id');
    viewer.sceneManager.camera.useAutoRotationBehavior = !viewer.sceneManager.camera.useAutoRotationBehavior
    }
    ''',
      src:
          'https://models.babylonjs.com/boombox.glb',
    ),
    

    使用此功能

    ElevatedButton(
      onPressed: () {
          _controller?.runJavascript('''
    toggleAutoRotate();
    ''');
      },
      child: const Text("Toggle")),
    
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 带有 BabylonJS 查看器的 Flutter 3D 模型查看器

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录