Я работаю над созданием «базовой» сцены, используя Networked-aframe и Aframe-реакции. После многих обходных путей, я наконец-то заработал сервер, который загружает версию «build» приложения реакции с помощью специального сценария.
npm run customrun
который делает это -
npm run build && node ./node_modules/networked-aframe/server/easyrtc-server.js
на localhost: 8080
Основная проблема заключается в том, что сущности (то есть сущность «сфера») не отображаются в загружаемой среде.
Я подумал, что это может быть из-за использования тега 'template' в JSX реагирования, поэтому я нашел этот способ с помощью вспомогательной функции. чтобы решить ее, но безуспешно.
При вводе NAF.connection.getConnectedClients () в консоли отображаются подключенные клиенты в JSON, которые я создаю, открывая несколько вкладок localhost: 8080
import React from 'react'
import ReactDOM from 'react-dom'
import 'aframe'
import { Entity, Scene } from 'aframe-react'
import 'aframe-environment-component'
import 'networked-aframe'
function Template({ children, ...attrs }) {
return (
<template
{...attrs}
dangerouslySetInnerHTML={{ __html: children }}
/>
);
}
class App extends React.Component {
render() {
return (<div>
<Scene environment="preset: yavapai;" networked-scene={{
serverURL: 'http://localhost:8080/',
connectOnLoad: true,
onConnect: 'onConnect',
adapter: 'wseasyrtc',
audio: false,
debug: false
}}>
<Template id="avatar-template">
<div><Entity primitive="a-sphere" color="#f00"></Entity></div>
</Template>
<Entity id="player" networked={{template: '#avatar-template',attachTemplateToLocal:false}} spawn-in-circle={{radius:3}} wasd-controls look-controls>
</Entity>
</Scene></div>);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
Он должен показывать объекты «сфера» в сцене при подключении нескольких соединений (или я открываю несколько вкладок на одном и том же URL) на локальном хосте.
Основная сцена: - https://haydenlee.io/networked-aframe/basic.html