v1.0.2+1
flutter_3d_objects
Wavefrontの3DオブジェクトファイルをレンダリングするFlutterパッケージプロジェクトです。
5いいね 230日間ダウンロード135Pub ポイント
AndroidiOSmacOSWindowsLinux
abdulsamad110/flutter_3d_objects open-source repository details.
以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。
This package allows Flutter developers to easily display 3D models in their applications. It supports the .obj file format and provides functionalities to manipulate the scene, including setting camera positions and adding objects with child objects.
Features:
.obj filesHow to use this
dependencies:
flutter:
sdk: flutter
flutter_3d_objects:
flutter:
assets:
- assets/p.obj
- assets/c.obj
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Cube(
onSceneCreated: (Scene scene) {
scene.world.add(
Object(
fileName: 'assets/c.obj',
position: Vector3(1, 1, 1),
scale: Vector3(1, 1, 1),
),
);
},
),
),
),
);
}
}
//Create a variable
late Scene _scene;
double x = 0;
double y = 3;
double z = 8;
late AnimationController _controller;
late Animation<double> _animation;
Object? _p;
// Create Function
void _onSceneCreated(Scene scene) {
_scene = scene;
scene.camera.position.z = z;
scene.camera.position.y = y;
scene.camera.position.x = x;
_p = Object(
position: Vector3(0, -2.5, 0),
scale: Vector3(4, 4, 4),
fileName: 'assets/p.obj',
children: [
Object(
fileName: 'assets/c.obj',
position: Vector3(0.25, 0.15, -0.24),
scale: Vector3(0.8, 0.8, 0.8),
),
]);
scene.world.add(_p!);
}
//Function to rotate
void rotateLeft() {
_animateRotation(90);
}
void rotateRight() {
_animateRotation(-90);
}
void _animateRotation(double angle) {
final double begin = _p!.rotation.y;
final double end = _p!.rotation.y + angle;
_animation = Tween<double>(begin: begin, end: end).animate(_controller)
..addListener(() {
setState(() {
_p!.rotation.y = _animation.value;
_p!.updateTransform();
_scene.update();
});
});
_controller.forward(from: 0);
}
// In main widget function
Scaffold(
appBar: AppBar(
title: const Text(''),
),
body: Stack(
children: [
Cube(
interactive: false,
zoom: false,
onSceneCreated: _onSceneCreated,
),
Positioned(
bottom: 10,
left: 0,
right: 0,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: rotateLeft,
child: const Text('Left'),
),
ElevatedButton(
onPressed: rotateRight,
child: const Text('Right'),
),
],
),
),
],
),
);
依存関係一覧 5 件
{"sdk":"flutter"}any—{"sdk":"flutter"}^3.0.0用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗