使用 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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.