[Unity3d]Unity web平台 SecurityException报错解决办法

简介: 最近被一个问题困扰了好久,连续三天都一直在想办法解决,各种能参考的资料都看了,包括硬着头皮看全英文的官网,努力寻求解决办法,昨晚搞到凌晨深夜两点可还是失望的离开了办公室,到底是什么问题呢?我相信如果Unity3D做网络游戏或者动态加载资源的同志们都会碰到,那就是U...

最近被一个问题困扰了好久,连续三天都一直在想办法解决,各种能参考的资料都看了,包括硬着头皮看全英文的官网,努力寻求解决办法,昨晚搞到凌晨深夜两点可还是失望的离开了办公室,到底是什么问题呢?我相信如果Unity3D做网络游戏或者动态加载资源的同志们都会碰到,那就是Unity3d动态加载资源然后切换到web平台会报错,关于security的一个错误,官方的解释是:http://docs.unity3d.com/Documentation/Manual/SecuritySandbox.html,努力看看英文吧,相信会有帮助!


目的:为了Unity3D能动态加载模型资源,切换到web平台也能正常加载到场景中!

步骤:

一开始我做的方案一,就是Unity3D直接访问远程mysql数据库,但后来发现切换到web平台会报错,而且解决起来比较麻烦,也不知道是否有人解决了没,然后咨询有过网游开发经验的大牛,他说一般公司开发都是会搭建一个中间层服务器,php或者.net或者其他,通过这个中间层服务器来访问数据库并且返回打包的数据,因此就听了大牛的建议然后果断去搭建.net服务器,这个我还比较熟悉一些,之前搞过一年多的.net,然后中间层服务器搭建好了,url是http://192.168.1.6/plusFile/Test.aspx,Unity3D中通过www的方法获取aspx返回的数据库中模型的路径,关于模型我是放在额外自己新建的一个ftp服务器上,地址是http://114.92.247.6/xiaowei,上面有一个模型,当然我已经打包成unity3d格式的了,按理的话应该是动态加载fbx的的模型资源,但是这个还有待探索中,如果有知道的同志,还望指导我一下。关于.net服务器的搭建就不多说了,当然也可以用php或者jsp。

Unity3D代码:

using UnityEngine;
using System.Collections;
using System.Text;

public class NewBehaviourScript : MonoBehaviour
{

    string s;
    private GameObject obj;
    private WWW www;
    private string url = @"http://192.168.1.6/plusFile/Test.aspx";
    private string url1 = "http://114.92.247.6/xiaowei/ok.unity3d";

    void Start()
    {

    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(20, 20, 100, 40), "加载"))
        {
            StartCoroutine(getURL(url));
            print("2");
        }
    }

    IEnumerator getURL(string url)
    {
        print("3");
        WWW web = new WWW(url);
        yield return web;
		
        Encoding e1 = new ASCIIEncoding();
        this.s = e1.GetString(web.bytes);
        print("web : " + this.s);
        print("--"+web.bytes.Length);
        
		//截取服务器端有用的数据
		print("s:length"+s.Length+"url1:length:"+url1.Length);
        //this.s = web.text;
		this.s = s.Substring(0,38);
		print(s.Length);
        StartCoroutine(getModel(s));
        print(url1+"|"+this.s);
        print(this.s.Length);
    }


    IEnumerator getModel(string str)
    {
        print(str.Length);
        this.www = new WWW(str);

        yield return this.www;
        print(www.bytes.Length);
        obj = GameObject.Instantiate(www.assetBundle.mainAsset) as GameObject;
        obj.transform.position = new Vector3(0, 1, 20);
        print(www.bytes.Length);
    }
}


看到这我就有点欣喜了,能够动态加载模型了,但切换到web平台就有问题了,不管怎样就是报错,有关一个Security权限的错误,然后网上查看各种资料,了解到Web Player平台有一个Security SandBox的安全策略,这个可能是为了安全性考虑的吧,配置了一下用户访问资源的一个权限。也就是要在服务器端配置一个crossdomain.xml,大体内容是:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">  
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

第一个“*”是指权限内的IP,*代表所有IP的客户端都有这个权限,第二个*号指服务器放开所有的端口,主要是一个843端口,通过这个端口来监视客户端的活动的。但之前我怎么配置.net服务器端都发现还是security权限报错,搞了我昨晚凌晨两点才离开办公室,后来发现我的模型资源放在远程的FTP服务器端,那个服务器端也要配置相同的权限,这样一来就没有错误了,恭喜一下自己,终于解决了困惑已久的问题!


关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:375151422     858550 欢迎进行技术讨论,里面有不少大牛


相关文章
|
5月前
|
SQL 开发框架 安全
Web开发中常见的安全缺陷及解决办法
Web开发中常见的安全缺陷及解决办法
|
5月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
201 0
|
6月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
226 0
|
6月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
212 0
|
6月前
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
|
6月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
6月前
|
安全 前端开发 API
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
110 4
|
6月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
102 0
|
6月前
|
监控 Java 应用服务中间件
【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
|
6月前
|
Apache 图形学
WebGL☀️Unity WebGL适配到各平台的教程
WebGL☀️Unity WebGL适配到各平台的教程

热门文章

最新文章

  • 1
    打造高效的Web Scraper:Python与Selenium的完美结合
    13
  • 2
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    26
  • 3
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    20
  • 4
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 5
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    342
  • 6
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 7
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    40
  • 8
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 9
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    22
  • 10
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    55