【发布时间】:2021-09-23 06:28:08
【问题描述】:
所以它是一个 360 度旋转的 3D 对象。 我想要的是它应该沿 Y 轴旋转,而不是沿 X 轴旋转。此外,当前锚点位于屏幕中心(宇航员的脚)。我想把它改成对象的中心。
class _HomePageState extends State<HomePage>
with SingleTickerProviderStateMixin {
late Object astronaut;
late final AnimationController _controller;
@override
void initState() {
_controller = AnimationController(
vsync: this,
duration: Duration(seconds: 10),
)..repeat();
astronaut = Object(fileName: 'assets/mercedes/Astronaut.obj');
super.initState();
}
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
appBar: AppBar(
title: Text('3D Demo'),
backgroundColor: Colors.black,
),
// body:
body: Center(
child: AnimatedBuilder(
animation: _controller,
builder: (_, child) {
return Transform.rotate(
angle: _controller.value * 2 * math.pi,
child: child,
);
},
child: Cube(
onSceneCreated: (Scene scene) {
scene.world.add(astronaut);
scene.camera.zoom = 10;
},
),
),
),
);
}
}
【问题讨论】: