Я хочу сделать динамический рендеринг введенного пользователем текста с использованием three.js и dat.gui, пока я сделал это для рендеринга текста:
var displayGui = function(){
var gui = new dat.GUI();
var parameters = {
message:"sample",
spinVelocity: 0
}
//Adds Text controls
var myText = gui.add(parameters, 'message').name('Text');
myText.onChange(function () {
//adds text
var loader = new THREE.FontLoader();
loader.load('fonts/OpenSansBold.json', function(font) {
console.log(myText);
var textGeo = new THREE.TextGeometry(myText, {
font: font,
size: 200,
height: 50,
curveSegments: 12,
position: 3,
bevelThickness: 2,
bevelSize: 5,
bevelEnabled: true,
});
var textMaterial = new THREE.MeshPhongMaterial({ color: 0xff0000 });
var mesh = new THREE.Mesh(textGeo, textMaterial);
mesh.position.set(100, 100, 100);
scene.add(mesh);
});
});
gui.add(parameters, 'spinVelocity').name('Spin');
gui.open();
};
Однако, как вы можетесм. здесь , он просто отображает большой красный 3D-текст с надписью [object Object], я подозревал, что это может быть потому, что var myText является объектом, а не строкой, поэтому я попытался String (myText) однако, он не сильно изменился и все равно не работал.
Это не работает, потому что текст не является строкой, или это потому, что three.js не распознает текст, введенный пользователем наинтерфейс dat.gui?