Hi i want to change the texture of the model when i click on the particular button and thr texture of that model gets change. there are two texture i want to change the texture of the model between two button.
This is quite popular question, and here is my usual example - Mu-so 2nd Generation 3D
Button
<div class="topgui grileGray" onclick="makeBlack()" title="makeBlack"></div>
The Function
this.makeBlack = function() {
var grile = scene.getMaterialByName("Grile-black");
var textureblack = new BABYLON.Texture("textures/F-grile-grey.jpg", scene);
grile.albedoTexture = textureblack;
console.log ("grile.albedoTexture.name = " + grile.albedoTexture.name);
}
Hope it will help to use it according to your needs.
I tried this but the texture does not gets changed and the log that i am getting is correct
Hi, There’s an error in the code. Whilst learning, you should probably have the console open to check your script (my advise only).
Here you did assign a ‘property’ of a material as if it was the material itself.
Where ‘hero.material’ is THE MATERIAL and 'needAlphaBlending is a property of a material.
So by saying that the material of mesh ‘hero’ is equal to ‘needAlphaBlending’ is incorrect and throws this error.
In general (my advise), it would be best to create a material and set all properties at material level (as opposed to what you are mostly doing == calling the mesh.material to change material properties).
Here’s a modified version of your PG (line 141). The instruction is now correct and doesn’t throw an error. Yet, I am not too sure what it is supposed to do in this case (nothing if you ask me
Don’t give up. Continue your learning, read the doc and may be watch some videos (some are very good, I had a great time watching these). Keep the console open to check your script.
Thanks I solved the problem