如意注册平台_如意登录_如意平台登录官网-「开户登入」

研发实战:Moziila分享异化实际编辑器MrEd的开辟经历和经验

VR/AR
2019
08/12
23:11
映维网
分享
评论

来源:映维网 作者 黄颜

MrEd是Moziila日前公布的一个尝试性异化实际编辑器,并旨在摸索MR故事在线编辑的可能性。日前Mozilla团队的Josh Marinacci分享了他们在开辟过程中的经历经验。下面是映维网的详细清算:

当我们开端构建MrEd时,我们以为这会成为一种传统的Web办事。潜伏用户拜候网站,建立帐户,然后可以在网站构建体验并将其保存到办事器。我们之前开辟过如许的软件,所以对相关请求十分熟谙。但当我们开端实际构建MrEd时,我们意想到其他应战的存在。

起首,MrEd的目标人群是门生,此中年夜多数是年青人。我曾在几个夏天教诲过孩子们,我晓得他们凡是没有电子邮件地点,即便有,追踪门生行动存在隐私和法律方面的问题。别的,我们晓得这是一个毕竟会结束的尝试,但我们不希望门生落空对他们刚学到的东西的拜候权限。

颠末一番思虑后,我们以为Glitch多是一个答案。它支撑匿名利用,并许可你轻松地进行操纵。它内置了一个不错的CDN,非常适合托管模型和360度图象。如果可以或许托管编辑器和文档,Glitch将成为尝试完成后继续存在的的完美平台。

Glitch的错误谬误是,它的年夜多数高级服从都没有文档介绍。颠末年夜量研究,我们想出了若何点窜Glitch来处理一系列的问题,而我们现在希望向你分享我们的处理计划。

1. Glitch与Git Repo

Glitch的编辑器非常适合编辑一个小项目,但不合用于构建年夜型软件。我们从一开端就晓得我们需求在本地机器编辑并将代码存储在GitHub repo中。问题是若何将代码导入Glitch?我们发明,Glitch支撑从现有的Git repo中建立一个新项目。这非常棒。

我们现在可以建立一个编辑器,并遵循我们喜欢的体例设置项目,在Git中保存,然后在需求时建立一个新的Glitch。我们特地构建了一个名为mred-base-glitch的新repo,并在readme中记录了详细的步调。

2. 集成React

MrEd是用React开辟,所以接上去的应战是若何将React利用法度变成Glitch。在开辟期间,我们利用hotreloading dev办事器在本地运行利用法度。但终究,我们需求可以托管在任何地位的静态文件。因为我们的利用法度是利用create-react-app进行开辟,所以我们可利用npm run build构建静态版本。问题是,为了计较终究的URL援引,它请求你在package.json中设置hostname属性。这不适合我们,因为Glitch可以重定名为任何一切。处理计划是将主机名设置为“.”,如许所有URL都是相对的。

接上去我们希望埋没编辑器。在Glitch中,用户可以编辑器左边发明一个文件列表。固然显现asset和脚本没有甚么问题,但我们希望埋没天生的React代码。究竟证明,如果它以“.”开首,Glitch将埋没任何目次。是以,在我们的根本repo中,我们将代码放到public/.mred。

最后的应战是,如安在现有Glitch中更新编辑器,同时不会覆盖用户建立的asset和文档。

我们不是将所有一切都放到同一个git repo中,我们建立了两个repo:mred只包含在React中构建编辑器的代码;mred-base-glitch则包含默许文档和行动。第二个repo将第一个repo集成为git子模块。编辑器的编译版本一样存放在mred repo中。如许,编辑器的源代码和编译版本都可以在git中进行版本节制。

每当你想要在现有Glitch中更新编辑器,你可以转到Glitch节制台并运行git子模块init和git子模块更新。然后,你可以经由过程革新Glitch UI进行更新。固然这是一个手动步调,但门生们可以经由过程教员指导轻松完成。

3. 加载文档

编辑器是一个静态React利用法度,托管在用户的Glitch中,但它需求在某个地位保存在编辑器中建立的文档。Glitch没有供应用于以编程体例加载和保存文档的API,但任何Glitch都可以装置NodeJS办事器,所以我们用express建立了一个简朴的文档办事器。doc办事器扫描文档和脚本目次并天生用于编辑器的JSON API。

对启动页面,我们希望用户在翻开编辑器之前检察以后项目标列表。就这一点而言,doc办事器在“/”地位具有路由,后者前往包含作为链接的列表的网页。对需如果absolute的URL,办事器利用Glitch供应的把戏变量来肯定主机名:process.env.PROJECT_DOMAIN。

相较于比脚本和文档,asset有点毒手。编辑器需求一个可用asset列表,但我们不克不及只扫描asset目次,因为asset实际上并未存储在你的Glitch中。相反,它们储存在Glitch的CDN中。但是,Glitch确切有一个名为.glitch-assets的埋没文件,它将所有asset列为JSON文档,包含mime范例。

我们发明门生想要利用诸如如GLB和WAV等不被Glitch辨认的文件。你仍然可以将这些文件上传到CDN,但.glitch-assets文件不会列出精确的mime范例,所以我们的文档办事器为它们计较了新的mime范例。

在Glitch中利用一个小型文档办事器为我们供应了非常年夜的矫捷性。这绝对是设想方面的成功。

4. 用户认证

另外一个应战是用户认证。Glitch具有效户的改变,不许可一名用户在未经许可的环境下编辑或人的Glitch。但这个用户体系不作为API公开。我们的代码无法晓得与编辑器交互的人是不是是Glitch的所有者。有传说传闻称将来Glitch将供应如许的服从,但现在我们用暗码文件先行建立了如许一个服从。

究竟证明,Glitch可以具有一个名为.env的特别文件,并用于存储暗码和其他宁静环境变量。这个文件可以经由过程Glitch中运行的代码读取,但在再次操纵时不会复制,所以如果有人要利用你的Glitch,他们将无法晓得你的暗码。我们要肄业生在制作完成后当即设置暗码。然后,doc办事器将利用暗码考证与编辑器的通信。

5. 将来服从

我们设法点窜Glitch以满足我们的需求,而我们发明结果不错。当然,我们希望在今后增加一系列的服从。

官方文档:我们下面所做的几近所有事情都是在支撑论坛进行了年夜量研究后所得出,并获得了Glitch事情职员的帮忙。除根基项目开辟以外,官方没有太多的介绍文档。如果除常见问题解答以外另有一个官方文档网站,那就太好了。实在的身份考证API:利用.env文件是一个非常棒,但如果编辑器本身可以精确响利用户则更棒。如果用户未登录,则可以显现体验的仅播放视图。如果用户已登录但不是Glitch的所有者,它可以显现Remix按钮。一种以编程体例添补asset的体例。当从GitHub克隆时,你在Glitch中看到的所有内容都来自于根本的git repo,除asset以外。要建立带有预设asset列表的Glitch,你需求经由过程可视界面手动上传文件。没有其他体例将asset存储在git repo中或以编程体例上传它们。

原文链接:https://yivian.com/news/64916.html

THE END
告白、内容合作请点击这里 寻求合作
VR
免责声明:本文系转载,版权归原作者所有;旨在通报信息,不代表砍柴网的观点和态度。

相关热点

如果说被试在测验测验一款基于电子肌肉安慰的交互式装备时会常常听到甚么,那多是笑声。即便先前已体验过这项技术,对一款用于节制本身身体的机器,你都会感受不自然和奇特。某种身分影响了用户的代办代理感...
VR
韩国迷信技术院的研究职员比来开辟出一种基于人工智能的隐形键盘界面。据介绍,它可以或许遵循你开端键入文本的双手摆放地位来主动定位。
VR
据韩国电信业动静称,在8月6日该国的5G挪动德律风用户总数已到达201万人。
VR
据相关媒体报导,在8月9日中国进行的一场消息公布会上,巴西圣保罗州州长Jo?o Doria表示,华为打算在将来三年在圣保罗州制作一座造价8亿美圆的工厂。目前,华为正在扩年夜其在拉美的业务。他还表示,华为准...
VR
三星Note10系列已公布了两天的时候,信赖最受存眷的还是三星note10系列的5G版本。自三星S10有5G版后,三星也一向在研发5G手机。
VR

相关保举

1
3