Я пытаюсь выяснить, как обновить/изменить/обновить dat.gui, чтобы отразить мой текущий выбор. Моя цель — сгенерировать несколько случайных кубов, а затем выбрать один куб для манипуляций, таких как: поворот, масштабирование, изменение положения и т. д.
Первый шаг — это возможность выбрать куб и управлять чем угодно из dat.gui. В приведенном ниже примере я просто хочу отобразить имя выбранного объекта. Я чувствую, что если я решу это, я могу добавить методы для управления вращением, положением и т. д.
Я пытаюсь добиться чего-то подобного, но этот код устарел и его трудно понять.
controller = new THREE.Object3D();
controller.objects = [];
controller.scene = scene;
controller.gui = gui;
controller.color = 0xFFFFFF;
controller.number_of_objects = controller.objects.length;
controller.selected_cube = 'test123';
controller.createNew = function() {
var cube = new THREE.Mesh(
new THREE.BoxGeometry(5, 5, 5),
new THREE.MeshBasicMaterial({
color: Math.random() * 0xffffff,
opacity: 0.5})
);
cube.position.x = Math.random() * (world_size * 2) - world_size;
cube.position.z = Math.random() * (world_size * 2) - world_size;
cube.name = 'cube_' + controller.objects.length;
controller.scene.add(cube);
controller.objects.push(cube);
controller.number_of_objects = controller.objects.length;
controller.selected_cube = cube.name;
};
gui.add(controller, 'number_of_objects').listen();
gui.add(controller, 'selected_cube').listen();
gui.add(controller, 'createNew');