Flutter温度监控插件thermion_flutter的使用
Flutter温度监控插件thermion_flutter的使用
简介
thermion_flutter
是一个用于在 Flutter 应用中实现 3D 渲染功能的插件。它基于 Filament 引擎,支持跨平台开发,并且可以轻松集成到现有的 Flutter 项目中。
下图展示了 thermion_flutter
的 logo:
以下是获取更多帮助的资源:
使用步骤
1. 添加依赖
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
thermion_flutter: ^x.x.x # 替换为最新版本号
然后运行 flutter pub get
安装依赖。
2. 创建基本应用结构
创建一个简单的 Flutter 应用,并初始化 ThermionViewer
对象。
import 'package:flutter/material.dart';
import 'package:thermion_flutter/thermion_flutter.dart';
import 'package:vector_math/vector_math_64.dart' as v;
import 'dart:math';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
3. 初始化和加载资源
在 MyHomePage
中初始化 ThermionViewer
并加载 3D 模型和天空盒。
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool _loaded = false;
ThermionViewer? _thermionViewer;
[@override](/user/override)
void initState() {
super.initState();
}
// 加载资源
Future _load() async {
var viewer = await ThermionFlutterPlugin.createViewer();
_thermionViewer = viewer;
// 加载天空盒
_thermionViewer!.loadSkybox("assets/default_env_skybox.ktx");
// 加载 GLB 模型
_thermionViewer!.loadGlb("assets/cube.glb");
// 设置相机位置和旋转
_thermionViewer!.setCameraPosition(0, 1, 10);
_thermionViewer!.setCameraRotation(
v.Quaternion.axisAngle(v.Vector3(1, 0, 0), -30 / 180 * pi) *
v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi));
// 添加光源
_thermionViewer!.addLight(LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1);
// 启动渲染
_thermionViewer!.setRendering(true);
_loaded = true;
setState(() {});
}
// 卸载资源
Future _unload() async {
var viewer = _thermionViewer!;
_thermionViewer = null;
setState(() {});
await viewer.dispose();
_loaded = false;
setState(() {});
}
// 加载按钮
Widget _loadButton() {
return Center(
child: ElevatedButton(child: const Text("Load"), onPressed: _load));
}
// 卸载按钮
Widget _unloadButton() {
return Center(
child: ElevatedButton(child: const Text("Unload"), onPressed: _unload));
}
[@override](/user/override)
Widget build(BuildContext context) {
return Stack(children: [
if (_thermionViewer != null)
Positioned.fill(child: ThermionWidget(viewer: _thermionViewer!)),
if (!_loaded) _loadButton(),
if (_loaded) _unloadButton(),
]);
}
}
更多关于Flutter温度监控插件thermion_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复