136 lines
7.4 KiB
JavaScript
136 lines
7.4 KiB
JavaScript
// Тест исправления дублирования параметров трансформации
|
||
// Файл: test-duplicate-transform-fix.js
|
||
|
||
console.log('🔧 Исправление дублирования параметров трансформации');
|
||
console.log('');
|
||
|
||
console.log('❓ Проблема:');
|
||
console.log('При дублировании коллайдера параметры трансформации не передавались новому объекту');
|
||
console.log('');
|
||
|
||
console.log('✅ Исправление:');
|
||
console.log('');
|
||
|
||
console.log('1. 📐 Копирование параметров трансформации:');
|
||
console.log(' - Позиция: mesh.position.copy(selected.position)');
|
||
console.log(' - Поворот: mesh.rotation.copy(selected.rotation)');
|
||
console.log(' - Масштаб: mesh.scale.copy(selected.scale)');
|
||
console.log(' - Смещение: +2 по X и Z для избежания наложения');
|
||
console.log('');
|
||
|
||
console.log('2. 🎛️ Обновление UI параметров:');
|
||
console.log(' - setColliderPosition() с новыми координатами');
|
||
console.log(' - setColliderRotation() с новыми углами');
|
||
console.log(' - setColliderScale() с новыми размерами');
|
||
console.log(' - UI автоматически отображает параметры нового коллайдера');
|
||
console.log('');
|
||
|
||
console.log('3. 📊 Улучшенная отладка:');
|
||
console.log(' - Логирование скопированных параметров трансформации');
|
||
console.log(' - Отображение позиции, поворота и масштаба');
|
||
console.log(' - Проверка корректности копирования');
|
||
console.log('');
|
||
|
||
console.log('🎮 Как тестировать исправление:');
|
||
console.log('');
|
||
|
||
console.log('1. 📦 Создайте коллайдер:');
|
||
console.log(' - Нажмите "Создать коллайдер"');
|
||
console.log(' - Коллайдер появится перед камерой');
|
||
console.log('');
|
||
|
||
console.log('2. 🔧 Измените параметры:');
|
||
console.log(' - Выберите коллайдер');
|
||
console.log(' - Измените позицию, поворот или масштаб');
|
||
console.log(' - Нажмите "Применить параметры"');
|
||
console.log(' - Коллайдер обновится');
|
||
console.log('');
|
||
|
||
console.log('3. 🔄 Дублируйте коллайдер:');
|
||
console.log(' - Убедитесь, что коллайдер выбран');
|
||
console.log(' - Нажмите "Дублировать коллайдер"');
|
||
console.log(' - Проверьте консоль:');
|
||
console.log(' * "✅ Коллайдер дублирован"');
|
||
console.log(' * "📐 Параметры трансформации скопированы:"');
|
||
console.log(' * Позиция, поворот, масштаб нового коллайдера');
|
||
console.log('');
|
||
|
||
console.log('4. ✅ Проверьте результат:');
|
||
console.log(' - Новый коллайдер должен иметь те же параметры');
|
||
console.log(' - Плюс смещение на 2 единицы по X и Z');
|
||
console.log(' - UI должен показать параметры нового коллайдера');
|
||
console.log(' - TransformControls должен быть прикреплен к новому коллайдеру');
|
||
console.log('');
|
||
|
||
console.log('🔍 Технические детали:');
|
||
console.log('');
|
||
|
||
console.log('📐 Копирование трансформации:');
|
||
console.log('- mesh.position.copy(selected.position) - копирует позицию');
|
||
console.log('- mesh.position.add(new THREE.Vector3(2, 0, 2)) - добавляет смещение');
|
||
console.log('- mesh.rotation.copy(selected.rotation) - копирует поворот');
|
||
console.log('- mesh.scale.copy(selected.scale) - копирует масштаб');
|
||
console.log('');
|
||
|
||
console.log('🎛️ Обновление UI:');
|
||
console.log('- setColliderPosition() - обновляет поля позиции в UI');
|
||
console.log('- setColliderRotation() - обновляет поля поворота в UI');
|
||
console.log('- setColliderScale() - обновляет поля масштаба в UI');
|
||
console.log('- UI автоматически синхронизируется с новым коллайдером');
|
||
console.log('');
|
||
|
||
console.log('📊 Отладочная информация:');
|
||
console.log('- Логирование всех скопированных параметров');
|
||
console.log('- Отображение точных значений позиции, поворота, масштаба');
|
||
console.log('- Проверка корректности копирования');
|
||
console.log('');
|
||
|
||
console.log('🎯 Преимущества исправления:');
|
||
console.log('');
|
||
|
||
console.log('✅ Полнота копирования:');
|
||
console.log('- Все параметры трансформации копируются');
|
||
console.log('- Новый коллайдер идентичен оригиналу');
|
||
console.log('- Только позиция смещается для избежания наложения');
|
||
console.log('');
|
||
|
||
console.log('✅ Удобство использования:');
|
||
console.log('- UI показывает параметры нового коллайдера');
|
||
console.log('- Можно сразу редактировать параметры');
|
||
console.log('- TransformControls готов к работе');
|
||
console.log('');
|
||
|
||
console.log('✅ Предсказуемость:');
|
||
console.log('- Поведение дублирования предсказуемо');
|
||
console.log('- Все параметры сохраняются');
|
||
console.log('- Смещение всегда одинаковое');
|
||
console.log('');
|
||
|
||
console.log('🧪 Тестовые сценарии:');
|
||
console.log('');
|
||
|
||
console.log('1. 🔄 Дублирование с поворотом:');
|
||
console.log(' - Создайте коллайдер');
|
||
console.log(' - Поверните его (например, на 45°)');
|
||
console.log(' - Дублируйте');
|
||
console.log(' - Новый коллайдер должен быть повернут на тот же угол');
|
||
console.log('');
|
||
|
||
console.log('2. 🔄 Дублирование с масштабом:');
|
||
console.log(' - Создайте коллайдер');
|
||
console.log(' - Увеличьте масштаб (например, в 2 раза)');
|
||
console.log(' - Дублируйте');
|
||
console.log(' - Новый коллайдер должен иметь тот же масштаб');
|
||
console.log('');
|
||
|
||
console.log('3. 🔄 Дублирование с позицией:');
|
||
console.log(' - Создайте коллайдер');
|
||
console.log(' - Переместите его в другое место');
|
||
console.log(' - Дублируйте');
|
||
console.log(' - Новый коллайдер должен быть рядом (смещение +2, +2)');
|
||
console.log('');
|
||
|
||
console.log('🚀 Исправление готово к тестированию!');
|
||
console.log('Откройте: http://localhost:4000/enhanced-collision-editor');
|
||
console.log('Проверьте дублирование коллайдеров с различными параметрами');
|