zoukankan      html  css  js  c++  java
  • WebGL开发入门

    WebGL开发入门

    什么是Unity WebGL

    可以使用Unity的WebGL构建选项将内容以JavaScript程序发布,这当中使用了HTML5技术和WebGL渲染接口API以在浏览器中运行Unity内容。Build Player窗口中选择WebGL构建目标,然后点击Build & Run,就能以WebGL形式构建并测试你的内容。

    技术概览

    要在WebGL中运行,所有代码必须是JavaScript。我们使用emscripten编译工具链将Unity运行时代码(用C和C++编写)跨平台编译成asm.js JavaScript。asm.js是JavaScript的一个很可优化的子集,允许JavaScipt引擎将asm.js代码AOT编译成非常高效的原生代码。

    为将.NET游戏代码(你的C#和UnityScript脚本)转换成JavaScript,我们使用了称为IL2CPP的技术。IL2CPP提取.NET字节码并将其转换成相对应的C++源文件,接着使用emscripten技术编译这些文件,将你的脚本转换成JavaScript。

    平台支持

    大多数主流浏览器的当前版本都支持Unity WebGL内容,然而不同浏览器的支持程度不一样。Unity WebGL不支持移动设备。

    WebGL构建里并不包含Unity的所有内容,这主要因为平台的限制。具体来说是以下几点:

    ·        构建的WebGL内容不支持多线程,这是由于JavaScript本身就缺乏多线程的支持。其中包括Unity内部为提高性能所用的多线程,以及脚本代码和托管dll里使用的多线程。基本上,System.Threading命名空间里的所有内容都不被支持。

    ·        在MonoDevelop或Visual Studio中WebGL构建不能被调试。详见:WebGL构建调试及疑难解答

    ·        出于安全起见,浏览器不允许在网络编程里直接访问IP套接字。详见:WebGL网络编程

    ·        WebGL图形接口API相当于OpenGL ES2.0,其有很多限制。详见:WebGL图形技术

    ·        基于Web Audio接口API ,WebGL构建为音频使用自定义的后台技术,其只支持基本的音频特性。详见:WebGL中使用音频

    ·        WebGL是一个AOT平台,因此它不支持使用System.Reflection.Emit动态创建代码。在所有其他IL2CPP平台、iOS和大多数控制台上也是不支持的。

     

  • 相关阅读:
    HDU2024 C语言合法标识符
    HDU2044 一只小蜜蜂…(简单递推)
    HDU2023 求平均成绩
    CodeForces 1185C1 Exam in BerSU (easy version) (贪心,排序)
    题目梳理(一)(2019.07.06~2019.07.20)
    Codeforces Gym 100989F(STL: map)
    UVA 10815 Andy's First Dictionary(STL: set)
    HDU2020 绝对值排序
    周二——4.2
    周一——4.1
  • 原文地址:https://www.cnblogs.com/andycja/p/7454757.html
Copyright © 2011-2022 走看看