原理很简单,使用 Havok 物理线性移动控制角色
The principle is very simple, use havok physics to move the character linearly, Control character using WSAD and space keys
https://armomu.github.io/ergoudan/
https://daisy-kaliman.vercel.app/#/index
git clone https://github.com/armomu/ergoudan.git
cd ergoudan
pnpm install
pnpm run dev
Copy src/views/serves/thirdPersonController.ts
and public/textures/x-bot.glb
to your project directory
Change file path
// thirdPersonController.ts
// 503 line
/**
* Load a scene into an asset container
* @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
* @param sceneFilename a string that defines the name of the scene file or starts with "data:" following by the stringified version of the scene or a File object (default: empty string)
* @param scene is the instance of BABYLON.Scene to append to (default: last created scene)
* ...omit
* @returns The loaded plugin
*/
BABYLON.SceneLoader.LoadAssetContainer(
import.meta.env.BASE_URL + rootUrl, // Output /ergoudan/textures/ Change to your `ENV BASE_URL` directory
sceneFilename // Output x-bot.glb
);
Use
import { ThirdPersonController } from './thirdPersonController';
new ThirdPersonController(camera, scene);
package.json dependencies
@babylonjs/havok: 1.1.4
Required
export class ThirdPersonController {
/**
* Creates a new ThirdPersonController
* @param camera Required BABYLON.ArcRotateCamera
* @param scene Required BABYLON.Scene
*/
constructor(camera: BABYLON.ArcRotateCamera, scene: BABYLON.Scene) {
}
}
Methods | desc |
---|---|
dispose() | Destroy the current character controller |
- ✅ Havok Physics engine
- ✅ Contrl character using WASD
- ✅ Jump
- ✅ Climb stairs
- ✅ Uphill and downhill
- ❌ First person control
- ❌ Mobile device
- ❌ Npm package