WebGL开发入门
Getting started with WebGL development
WebGL开发入门
What is Unity WebGL?
什么是Unity WebGL?
The WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. To build and test your content for WebGL, choose the WebGL build target in the Build Player window, and click Build & Run.
可以使用Unity的WebGL构建选项将内容以JavaScript程序发布,这当中使用了HTML5技术和WebGL渲染接口API以在浏览器中运行Unity内容。在Build Player窗口中选择WebGL构建目标,然后点击Build & Run,就能以WebGL形式构建并测试你的内容。
Technical overview
技术概览
To run in WebGL, all code needs to be JavaScript. We use the emscripten compiler toolchain to cross-compile the Unity runtime code (written in C and C++) into asm.js JavaScript. asm.js is a very optimizable subset of JavaScript which allows JavaScript engines to AOT-compile asm.js code into very efficient native code.
要在WebGL中运行,所有代码必须是JavaScript。我们使用emscripten编译工具链将Unity运行时代码(用C和C++编写)跨平台编译成asm.js JavaScript。asm.js是JavaScript的一个很可优化的子集,允许JavaScipt引擎将asm.js代码AOT编译成非常高效的原生代码。
To convert the .NET game code (your C# and UnityScript scripts) into JavaScript, we use a technology called IL2CPP. IL2CPP takes .NET bytecode and converts it to corresponding C++ source files, which is then compiled using emscripten to convert your scripts to JavaScript.
为将.NET游戏代码(你的C#和UnityScript脚本)转换成JavaScript,我们使用了称为IL2CPP的技术。IL2CPP提取.NET字节码并将其转换成相对应的C++源文件,接着使用emscripten技术编译这些文件,将你的脚本转换成JavaScript。
Platform support
平台支持
Unity WebGL content is supported in the current versions of most major browsers on the desktop, however there are differences in the level of support offered by the different browsers. Mobile devices are not supported by Unity WebGL
大多数主流浏览器的当前版本都支持Unity WebGL内容,然而不同浏览器的支持程度不一样。Unity WebGL不支持移动设备。
Not all features of Unity are available in WebGL builds, mostly due to constraints of the platform. Specifically:
WebGL构建里并不包含Unity的所有内容,这主要因为平台的限制。具体来说是以下几点:
· Threads are not supported due to the lack of threading supporting in JavaScript. This applies to both Unity’s internal use of threads to speed up performance, and to the use of threads in script code and managed dlls. Essentially, anything in the System.Threading
namespace is not supported.
· 构建的WebGL内容不支持多线程,这是由于JavaScript本身就缺乏多线程的支持。其中包括Unity内部为提高性能所用的多线程,以及脚本代码和托管dll里使用的多线程。基本上,System.Threading
命名空间里的所有内容都不被支持。
· WebGL builds cannot be debugged in MonoDevelop or Visual Studio. See: Debugging and trouble shooting WebGL builds.
在MonoDevelop或Visual Studio中WebGL构建不能被调试。详见:WebGL构建调试及疑难解答。
· Browsers do not allow direct access to IP sockets for networking, due to security concerns. See: WebGL Networking.
出于安全起见,浏览器不允许在网络编程里直接访问IP套接字。详见:WebGL网络编程。
· The WebGL graphics API is equivalent to OpenGL ES 2.0, which has some limitations. See: WebGL Graphics.
WebGL图形接口API相当于OpenGL ES2.0,其有很多限制。详见:WebGL图形技术。
· WebGL builds use a custom backend for Audio, based on the Web Audio API. This supports only basic audio functionality. See: Using Audio in WebGL.
基于Web Audio接口API ,WebGL构建为音频使用自定义的后台技术,其只支持基本的音频特性。详见:在WebGL中使用音频。
· WebGL is an AOT platform, so it does not allow dynamic generation of code using System.Reflection.Emit
. This is the same on all other IL2CPP platforms, iOS, and most consoles.
WebGL是一个AOT平台,因此它不支持使用System.Reflection.Emit
动态创建代码。在所有其他IL2CPP平台、iOS和大多数控制台上也是不支持的。
WebGL开发入门的更多相关文章
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- VR原理讲解及开发入门
本文是作者obuil根据多年心得专门为想要入门的VR开发者所写,由52VR网站提供支持. 1. VR沉浸感和交互作用产生的原理: 在之前,我们观看一个虚拟的创造内容是通过平面显示器的,52VR ...
- Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门
一.所有需要的软件.插件等下载地址 J2SE的官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html Ecl ...
- OWIN的理解和实践(三) –Middleware开发入门
上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发 ...
- [Cordova] Plugin开发入门
[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...
随机推荐
- 关于net mail组件ssl端口问题
最近开发一个项目使用到.net mail组件发送邮件.在开发环境中一切正常,可是部署到阿里云服务器上死活发送不出去,一直连接不上,或者报语法错误. 然后是各种折腾,各种测试,最后发现,使用ssl的时候 ...
- 【原创】EntityFramework Core 中使用 CodeFirst 模式时 PowerShell 版本问题及解决
一.描述: 在使用 Entity Framework Core 时,使用 CodeFirst 模式, 在 VS 中的 PMC(nuget 包管理 控制台) 控制台界面使用如下命令: Install-P ...
- 使用Linux环境变量
bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息. 全局环境变量 这对shell 会话和所有生成的子shell都是可见的.局部变量只对创建他们的shell可见. 系 ...
- Android - 自定义控件之圆形控件
自定义控件 - 圈圈 Android L: Android Studio 效果:能够自定义圆圈半径和位置:设定点击效果:改变背景颜色 下面是demo图 点击前: 点击后: 自定义控件一般要继承View ...
- [Oracle]约束(constraint)
(一)约束的概念 在Oracle中,可以通过设置约束来防止无效数据进入表中.Oracle一共有5种约束: 主键约束(primary key) 外键约束(foreign key) 唯一性约束(uniqu ...
- 走进安卓的重灾区----video
html5的video已经出来很久了.在ios上使用基本上没什么毛病,但是安卓下就是一个重灾区了,各种体验差.这几天搞了安卓的兼容,简直是要吐血.所以特意总结了一些强势的坑点. 先看一下常用的一些属性 ...
- html中ul元素水平排列问题
<!DOCTYPE html> <html> <head> <style> #pic_list { display:block; white-space ...
- ServletContext对象统计在线人数
package com.zdsofe.servlet1; import java.io.IOException; import java.io.PrintWriter; import javax.se ...
- kafka生产实践
最近接触到一个APP流量分析的项目,类似于友盟.涉及到几个C端高并发的接口,这几个接口主要用于C端数据的提交.在没有任何缓冲的情况下,一个接口涉及到5张表的提交.压测的结果很不理想,主要瓶颈就在与RD ...
- 再起航,我的学习笔记之JavaScript设计模式02
我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 我们 ...