本文共 2678 字,大约阅读时间需要 8 分钟。
最近被一个问题困扰了好久,连续三天都一直在想办法解决,各种能参考的资料都看了,包括硬着头皮看全英文的官网,努力寻求解决办法,昨晚搞到凌晨深夜两点可还是失望的离开了办公室,到底是什么问题呢?我相信如果Unity3D做网络游戏或者动态加载资源的同志们都会碰到,那就是Unity3d动态加载资源然后切换到web平台会报错,关于security的一个错误,官方的解释是:,努力看看英文吧,相信会有帮助!
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); } }效果图:
第一个“*”是指权限内的IP,*代表所有IP的客户端都有这个权限,第二个*号指服务器放开所有的端口,主要是一个843端口,通过这个端口来监视客户端的活动的。但之前我怎么配置.net服务器端都发现还是security权限报错,搞了我昨晚凌晨两点才离开办公室,后来发现我的模型资源放在远程的FTP服务器端,那个服务器端也要配置相同的权限,这样一来就没有错误了,恭喜一下自己,终于解决了困惑已久的问题!