here are some forced attempts to do it, inside BABYLON.SceneLoader.ImportMesh...{ newMeshes[0].position.x=10; } it works using the local item newMeshes[0], but out of this nothing works.
This is because the variable newMeshes
is only defined inside the callback function. If you want to get the variable outside of the function you need it to be defined in the global scope. To do this simply declare a variable before ImportMesh
is called and inside of ImportMesh
's callback function set that variable to newMeshes[0]
like this:
var meshisin = BABYLON.AbstractMesh;
// Define the variable in the global scope.
var skullMesh;
meshisin = BABYLON.SceneLoader.ImportMesh("", "scenes/", "skull.babylon", scene, function (newMeshes) {
skullMesh = newMeshes[0];
});
Then you can change the position of the mesh with: skullMesh.position.x = 10;
.
But since it takes say 1 second to load the mesh you delay using the mesh until it's loaded with a setTimeout
like this:
setTimeout(function() {
skullMesh.position.x = 10;
}, 1000);
All in all your code would become:
var meshisin = BABYLON.AbstractMesh;
// Define the variable in the global scope.
var skullMesh;
meshisin = BABYLON.SceneLoader.ImportMesh("", "scenes/", "skull.babylon", scene, function (newMeshes) {
skullMesh = newMeshes[0];
});
setTimeout(function() {
skullMesh.position.x = 10;
}, 1000);
PS: It's generally not a good idea to post code in images.