标签: unity-webgl

Unity WebGL的EditorUtility.OpenFilePanel(运行时)

我希望用户在Unity WebGL游戏中从计算机中选择一个图像,但我无法获得任何库或代码.我想要UnityWebGL(Runtime)的EditorUtility.OpenFilePanel的确切功能.

string path = EditorUtility.OpenFilePanel("用png覆盖","","png");

有没有办法在Unity WebGL构建中获得这个打开的对话框?或者我有什么方法可以在java脚本中做到这一点?就像我从用户的java脚本中获取图像并将其传递给我的C#代码.

unity-game-engine unity3d-editor unity5 unity-webgl

5
推荐指数
2
解决办法
4444
查看次数

将Unity WebGL项目导入Angular2组件

我希望将Unity WebGL项目集成到Angular2应用程序中。将所有这些脚本移至Angular2组件的正确方法是什么?

首先,Unity WebGL像这样导出index.html:

<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player | Espoo web manager (Prefab preview)</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.js"></script>  
    <script src="Build/UnityLoader.js"></script>
    <script>
      var gameInstance = UnityLoader.instantiate("gameContainer", "Build/builds.json", {onProgress: UnityProgress});
    </script>
  </head>
  <body>
    <div class="webgl-content">
      <div id="gameContainer" style="width: 960px; height: 600px"></div>
      <div class="footer">
        <div class="webgl-logo"></div>
        <div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
        <div class="title">Espoo web manager (Prefab preview)</div>
      </div>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我开始拆分,首先将样式表移动到模板.css文件中:

@import './webgl-app/TemplateData/style.css';
Run Code Online (Sandbox Code Playgroud)

然后,我将javascript移至组件.ts-file中:

import { Component, AfterViewInit } …
Run Code Online (Sandbox Code Playgroud)

javascript unity-game-engine typescript unity-webgl angular

5
推荐指数
2
解决办法
2145
查看次数

使用UnityWebRequest的响应代码为0的通用/未知HTTP错误

我试图使用一些服务器的API函数,突然出现了这个错误.我将在代码示例后解释它:

public IEnumerator Post(Dictionary<string, string> data)
    {
        var request = UnityWebRequest.Post(Url, data);
        request.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        yield return request.Send();

        if (request.isError)
           UpdateNetworkLog("Network error has occured: " + request.error);
        else
            // Some code after success
    }
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,主要是我把它从Unity手动考虑POST请求这里.但是,有一个问题 - 请求从未正确完成,它总是有错误(使用UpdateNetworkLog函数显示):"通用/未知HTTP错误",而请求的响应代码为0.此外,我试图使用遗留本手册中的方法和WWW类获得相同的结果.

我认为,问题在于Unity如何获得响应:我通过Wireshark检查了数据包,我的POST请求和服务器的响应都非常好,没有错误或错误.

另一个重要的问题是我正在使用WebGL,并且编辑器中的所有内容都可以,程序得到正确的响应并正常工作; 只有在浏览器中构建并运行游戏(在Chrome和Safari中测试)后才会出现错误.此外,尝试使用Unity WebGL播放器启动它,但XAMPP:相同.

感谢所有未来的回复,因为Google对此一无所知.

http unity-game-engine unity-webgl

5
推荐指数
2
解决办法
1万
查看次数

如果在Unity3D中使用WebGL开发游戏,奖励视频广告有哪些选项?

我搜索了互联网,没有任何有用的链接.有人说使用Ad Sense,但我认为如果要发布到FB Canvas(如果我错了,请纠正我)是违反Facebook政策的.有没有可用的插件?或者有没有办法在团结之外将它设置在外部并使用它们来引用它们Application.ExternallCall.

unity-game-engine unity-webgl rewardedvideoad

5
推荐指数
0
解决办法
514
查看次数

如何使Unity WebGL应用程序异步放置在简单的html页面上?

我在Unity中创建了一个游戏并定期将其导出为WebGL.此导出附带的index.html页面包含以下代码部分:

脚本定义

<script src="Build/UnityLoader.js"></script>
<script> 
  var gameInstance = UnityLoader.instantiate("gameContainer", "Build/1.0.json");
</script>
Run Code Online (Sandbox Code Playgroud)

并使用该脚本

<div class="gameContainer">
    <div id="gameContainer" style="width: 960px; height: 600px; margin: auto"/>
</div>
Run Code Online (Sandbox Code Playgroud)

在普通的HTML代码中.

现在我意识到,当我在该页面上放置更多内容时,一切都会冻结,直到游戏加载完毕.什么是适当的解决方案?有一个简单的方法,如何使这个游戏加载异步?

非常感谢任何答案!

html javascript asynchronous unity-game-engine unity-webgl

5
推荐指数
1
解决办法
435
查看次数

使用光子网络构建Unity3d WEB GL

我已经开发了具有光子网络(PUN)的多人unity3d射击游戏。它运行良好,可以在Windows(exe)上运行,但是在浏览器(web gl)中不起作用。

没有光子的测试项目在浏览器中可以正常工作。我认为问题与光子有关。js控制台中有几个例外。

构建托管于

谷歌驱动器。 您能解释这个问题的原因吗?

Unity3d 5.3.1。Photon Unity Networking v1.65。使用chrome,firefox和Internet Explorer对构建进行了测试。Windows 7 x64。

c# unity-game-engine photon unity-webgl

4
推荐指数
2
解决办法
2883
查看次数

如何使用 Unity 和 Vuforia 创建增强现实 Web 应用程序?

我正在开发一个使用 Unity 集成到网站的增强现实应用程序。我需要在 WebGL 中获取输出。我正在使用 Vuforia 来创建 AR 体验。由于 WebGL 不支持 Vuforia,因此我无法构建。请建议一种替代方法或如何在 Unity for Web 中进行增强现实。有没有 Vuforia 的替代品?

unity-game-engine augmented-reality web vuforia unity-webgl

4
推荐指数
1
解决办法
9777
查看次数

RangeError:为函数调用 createUnityInstance 提供了太多参数

不确定我在 Unity 中构建 WebGl 时做错了什么,或者是否需要添加更多内容。

在我们的 web 应用程序的 wwwroot 中设置一个路径以放入 WebGL 构建。当我在本地运行它时,页面将加载,并且出现 Unity 徽标,进度条达到 90% 就这样了。

在 Firefox 中运行时,页面加载并生成 RangeError 弹出窗口 如何查看传递的参数?

最初我出现了解析错误,但设法解决了该问题。

无法解析/MyApp/Build/Builds.framework.js.gz!如果启用了构建压缩,但托管内容的 Web 服务器配置错误,无法提供存在 HTTP 响应标头“Content-Encoding: gzip”的文件,则可能会发生这种情况。检查浏览器控制台和 Devtools Network 选项卡进行调试。

添加以下代码已解决解析错误。

    public static IApplicationBuilder UseStaticFilesExtendedTypes(this IApplicationBuilder app)
    {
        var provider = new FileExtensionContentTypeProvider();
        provider.Mappings[".glb"] = "model/gltf-binary";
        provider.Mappings[".env"] = "application/octet-stream";

        // app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider });

        app.UseStaticFiles(new StaticFileOptions
        {
            ContentTypeProvider = provider,
            OnPrepareResponse = content =>
            {
                if (content.File.Name.EndsWith(".js.gz"))
                {
                    content.Context.Response.Headers["Content-Type"] = "text/javascript";
                    content.Context.Response.Headers["Content-Encoding"] = "gzip";
                } …
Run Code Online (Sandbox Code Playgroud)

unity-game-engine webgl unity-webgl

4
推荐指数
1
解决办法
986
查看次数

从 UnityWebGL jslib 返回字符串

我想使用 jslib 获取url 参数

像这样的代码

jslib

  GetUrl: function(){
  var s ="";
  var strUrl = window.location.search;
  var getSearch = strUrl.split("?");
  var getPara = getSearch[1].split("&");
  var v1 = getPara[0].split("=");
        alert(v1[1]);
   return v1[1];
  },
});
Run Code Online (Sandbox Code Playgroud)

C#

[DllImport("__Internal")]
public static extern string GetUrl();


void Start () {
    TextShow.text = GetUrl();
}
Run Code Online (Sandbox Code Playgroud)

当从 jslib 运行警报时,我看到警报中显示正确的字符串,但 UGUI 文本什么也没显示。

为什么会发生这种情况?

html javascript get unity-game-engine unity-webgl

3
推荐指数
1
解决办法
3480
查看次数

在手机浏览器上玩Unity webGl游戏时如何保存游戏数据?

我的 Unity WebGL 游戏在大量优化音频和纹理数据后在移动 Web 浏览器上运行。保存游戏数据在桌面环境下运行良好。但是当我在移动浏览器上玩同一个游戏时,似乎没有任何地方保存游戏数据。下面给出了我在本地保存和加载数据的代码。

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;

public class DataAccess
{
    [DllImport ( "__Internal" )]
    private static extern void SyncFiles ( );

    [DllImport ( "__Internal" )]
    private static extern void WindowAlert ( string message );

    public static void Save ( Stats stats )
    {
        string dataPath = string.Format ( "{0}/Stats.dat", Application.persistentDataPath );
        BinaryFormatter binaryFormatter = new BinaryFormatter ( );
        FileStream fileStream;

        try
        {
            if ( File.Exists ( dataPath ) )
            { …
Run Code Online (Sandbox Code Playgroud)

save unity-game-engine unity-webgl

3
推荐指数
1
解决办法
1万
查看次数