【问题标题】:Script# Wrap WebGL?脚本# 包装 WebGL?
【发布时间】:2013-10-09 18:37:28
【问题描述】:

如何将 WebGL 封装在 Script# 中。

我尝试在源代码中添加内容,但出现我不理解的编译错误。

[ScriptIgnoreNamespace]
    [ScriptImport]
    [ScriptName("webGL")]
    public sealed class WebGL
    {
        [ScriptName("fooGL")]
        public void Foo(string test)
        {

        }
    }

错误 1 ​​中的基类或接口“System.FormatException” 程序集'mscorlib,版本=2.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 类型引用 'System.UriFormatException' 不能 已解决 c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll Web

或者有没有更好的方法将 WebGL 支持添加为库而不是将其直接添加到主源?

编辑:看起来编译器错误来自 VS,来自自动将 System.dll 添加到项目中,它不应该是。删除后现在可以编译。所以现在的问题是在 Script# 中包装 javaScript API 的最佳方法是什么?

【问题讨论】:

  • WebGL 使用的 GLSL 不是 JavaScript。 Script# 似乎只生成了 JavaScript。我不太确定为什么你会认为这会起作用。
  • "GLSL" 是 Shader 语言,而不是 GLES2 语言。 WebGL通过javaScript控制GLES2,它不控制GLSL,GLES2负责GLSL...
  • 这就像斯巴鲁森林人和斯巴鲁傲虎之间的区别。他们都是斯巴鲁。甚至 WebGL 规范也区分了这一点。 “不得加载引用其他 GLSL 版本中可用的状态变量或函数的着色器,例如桌面 OpenGL 版本中的着色器。”如果我们想学究气,WebGL 中的着色器不是 GLES2,它大部分是一个子集。见 => khronos.org/registry/webgl/specs/1.0/#6
  • (尽管严格来说着色器语言本身,我看到的唯一真正明显的区别是“以 'webgl_' 和 'webgl' 开头的标识符保留供WebGL。”。)
  • 无论哪种方式 GLSL 都与问题无关,因为您不在 JavaScript 中编写 GLSL,而是在 JavaScript 中编写 GLES2(又名 WebGL)。

标签: c# javascript visual-studio webgl script#


【解决方案1】:

您应该查看 github 上的 S# 源代码,了解如何编写包装器。它们只是用 ScriptImport 属性标记的类,内部方法/属性具有空值/实体。

查看来源here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多