所以,我已经将我在 Blender 中制作的场景加载到 Babylonjs 中,它会产生一些有趣的效果。基本上,我正在尝试将重力等应用到场景中,将玩家移动到适当的位置,并使整个场景变得明亮可见,但这些都不起作用。这是脚本:
var BABYLON;
var canvas = document.getElementById('gamecanvas');
var engine = new BABYLON.Engine(canvas, true);
var player_height = 2;
var player_speed = 1;
var player_inertia = 0.9;
function INIT_GAME(){
BABYLON.SceneLoader.Load('Scenes/', 'zombie_map.babylon', engine, function(newScene){
var scene = newScene;
var light = new BABYLON.PointLight('light', new BABYLON.Vector3(0,0,10), scene);
var player = new BABYLON.FreeCamera('player', new BABYLON.Vector3(1,1,1), scene);
scene.activeCamera = player;
scene.activeCamera.attachControl(canvas, true);
scene.enablePhysics();
scene.setGravity(new BABYLON.Vector3(0, -10, 0));
player.ellipsoid = new BABYLON.Vector3(1, player_height, 1);
player.checkCollisions = true;
player.applyGravity = true;
player.keysUp = [87];
player.keysDown = [83];
player.keysLeft = [65];
player.keysRight = [68];
player.inertia = player_inertia;
player.speed = player_speed;
newScene.executeWhenReady(function(){
engine.runRenderLoop(function(){
newScene.render();
});
});
});
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock;
canvas.requestPointerLock();
window.addEventListener('resize', function(){
engine.resize();
});
}
我的问题是:
- 如何使渲染距离更高,以便可以查看整个场景?
- 为什么我的场景属性(重力、运动等)都不起作用?