diff --git a/src/main.js b/src/main.js index 20c8144..57126ae 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,7 @@ import { ACESFilmicToneMapping, AmbientLight, DirectionalLight, Mesh, MeshStandardMaterial, PerspectiveCamera, PlaneGeometry, Scene, Timer, Vector3, WebGLRenderer } from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js"; +import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; import { playerController } from "three-player-controller"; const container = document.querySelector("#container"); @@ -13,6 +14,8 @@ renderer.shadowMap.enabled = true; container.appendChild(renderer.domElement); const camera = new PerspectiveCamera(55, container.clientWidth / container.clientHeight, 0.1, 2500); +// Pflichtoption für player.init: der Controller übernimmt die Kamera, braucht aber controls.domElement als Eingabeziel. +const controls = new OrbitControls(camera, renderer.domElement); scene.add(new AmbientLight(0xffffff, 1.5)); const sun = new DirectionalLight(0xffffff, 2); sun.position.set(60, 120, 40); @@ -27,7 +30,7 @@ scene.add(ground); const gltf = await new GLTFLoader().loadAsync("./models/ual.glb"); const player = new playerController(); await player.init({ - scene, camera, + scene, camera, controls, colliders: [{ motion: "static", shape: { kind: "mesh", source: ground } }], initPos: new Vector3(0, 2, 0), playerModelConfig: {