Иерархия реализована следующим образом: корневой контейнер-риг служит основным объектом позиционирования, внутри которого находится сетевой объект игрока, содержащий элементы камеры и визуального аватара. Объект камеры включает в себя элементы управления движением и осмотром, а также тот факт, что он является дочерним элементом игрока. Визуальное представление (шаблон аватара: поле и текст) существует на том же уровне, что и камера, внутри объекта игрока, что должно позволять им двигаться вместе как единое целое, но это не так.
Вот создание шаблона аватара (template-setup.js):
Код: Выделить всё
export const createAvatarTemplate = () => {
if (document.getElementById('avatar-template')) return;
const templateHTML = `
`;
const template = document.createElement('div');
template.innerHTML = templateHTML;
document.body.insertBefore(template.firstElementChild, document.body.firstChild);
};
createAvatarTemplate();
Код: Выделить всё
const Cursor = memo(() => (
));
Cursor.displayName = 'Cursor';
const Camera = memo(() => (
));
Camera.displayName = 'Camera';
const Player = memo(() => (
));
Player.displayName = 'Player';
const VRScene = memo(({ sceneRef, username, roomName }) => (
));
VRScene.displayName = 'VRScene';
Как только я попытаюсь связать их вместе, рисунок аватара исчезает или что-то перемещается:
[*]Аватар и курсор, а камера останавливается.
[*]Камера и курсор, и аватар исчезает.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ed-a-frame