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页面来 ...
随机推荐
- Python运维开发基础-概述-简介
Python基础知识分为以下几块 1.Python概述 2.基础语法 3.数据结构 4.Python进阶 5.实训案例 一.Python概述 1.Python简介 2.Hello World 3.搭建 ...
- Linux常用命令和常见问题解决<------>第一章
查看文件下面所有的隐藏目录:ls -al ~ ls -al ~ls -a -l ~可以发现三条命令执行结果是一致的,原因:因为ls为命令 后面的参数要以空格来区分,不论几个空格 shell都会视为一体 ...
- [BZOJ 2500] 幸福的道路
照例先贴题面(汪汪汪) 2500: 幸福的道路 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 368 Solved: 145[Submit][Sta ...
- CentOS下安装Nginx服务器
一.nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos7作为安装环境. 1.1 gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...
- Vmware Tools 下载及安装方法
Vmware Tools 下载及安装方法 王尚2014.11.20 一.介绍 VMware Tools 是VMware 虚拟机中自带的一种增强工具,相当于 VirtualBox 中的增强功能(Sun ...
- 31. leetcode 122. Best Time to Buy and Sell Stock II
122. Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price ...
- How to create a jump server in AWS VPC
本来是写的Word文档,给其他国家的同时看的,所以一开始就是英文写的,也没打算翻译成为中文了,顺便抱怨下,网上资料找了很久的资料都没有看到介绍怎么在单机环境下搭建RD Gateway的,写本文的目的是 ...
- 关于个人编辑器sublime text3使用指南
用过了好多编辑器,前些年用的zend studio,phpstorm近两年转为nodepad++(因为写的语言种类比较多了,shell,python,php,前端等),相对于nodepad++, s ...
- POJ 1182 食物链 -- 解题报告
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70529 Accepted: 20875 Description ...
- Win7 IIS建站
1.在控制面板->程序和功能->打开或关闭windows功能->安装IIS服务 2.控制面板->管理工具->IIS管理器 客户端访问Web服务器,服务器端不需关闭防火墙, ...