使用 react-three-fiber 在 React 中制作一个摇摆的立方体


在这篇文章中,我们将学习如何在 React 中创建一个摇摆的立方体,它将循环摇摆并同时旋转。我们首先创建一个立方体,然后添加摇摆效果。我们还可以添加一个功能,使立方体在悬停时摇摆。所以,让我们开始吧。

示例

首先下载 **react-three-fiber** 包:

npm i --save @react-three/fiber
npm i --save @react-three/drei
npm i --save three

**threejs** 和 **react-three/fiber** 将用于向网站添加 WebGL 渲染器。react-three/fiber 将用于连接 **threejs** 和 **React。drei** 用于添加 **wobblingMesh**。

在 **App.js** 中添加以下代码:

import React, { useRef } from "react";
import { Canvas, useFrame } from "@react-three/fiber";
import { MeshWobbleMaterial } from "@react-three/drei";

function Box(props) {
   const mesh = useRef();
   useFrame(() => (mesh.current.rotation.x = mesh.current.rotation.y += 0.01));
   return (
      <mesh {...props} ref={mesh}>
         <boxGeometry args={[3, 3, 3]} />
         <MeshWobbleMaterial
            attach="material"
            factor={1}
            speed={10}
            color={"lightblue"}/>
      </mesh>
   );
}

export default function App() {
   return (
      <Canvas>
         <ambientLight />
         <pointLight position={[10, 10, 10]} />
         <Box position={[0, 0, 0]} />
      </Canvas>
   );
}

解释

这里我们首先创建了一个 **BoxGeometry** 对象。然后在 **material** 对象中,我们提供了从 **drei** 导入的 **MeshWobbleMaterial**。代码非常容易理解;我们做了一些基本的灯光设置并定位了对象。

**<mesh>** 用于创建 **threeJS** 对象,在其中,我们使用 **boxGeometry** 创建了一个盒子,用于定义大小、形状和其他结构参数。我们使用 **meshWobbleMaterial** 来设计我们的几何结构并添加摇摆效果。

输出

执行后,将产生以下输出:

更新于:2021年9月28日

484 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告