資源描述:
《unity3d游戲開發(fā)之webplayer的server端聯(lián)網(wǎng)配置》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Unity3d游戲開發(fā)之WebPlayer的server端聯(lián)網(wǎng)配置????新游戲出了第一個(gè)能跑完流程的版本,不得不佩服Unity3D強(qiáng)大的功力,PC、MACOS、Linux、IOS、Android、webplayer,前天剛發(fā)布的unity3d4.2版本還支持WINDOWSPHONE、BlackBarry這些平臺(tái)統(tǒng)統(tǒng)一鍵打包,soeasy!不過在打包部署WebPlayer時(shí),在聯(lián)網(wǎng)方面出現(xiàn)了一點(diǎn)麻煩,算是順風(fēng)順?biāo)^程當(dāng)中的一個(gè)小插曲吧!所以又可以針對(duì)Unity3dWebPlayer的server端聯(lián)網(wǎng)
2、配置寫一隨筆咯。????以SmartFoxServer2X官方的Unity3dExample”tris“為例,部署好服務(wù)器之后,在Unity端跑游戲肯定沒問題,成功連接。但是當(dāng)切換到WebPlayer打包方式,并且確定你連接的不是本機(jī)服務(wù)器,即--服務(wù)器端地址不為“LocalHost”或“127.0.0.1”時(shí),會(huì)發(fā)現(xiàn)一個(gè)很“有趣”的現(xiàn)象(其實(shí)一點(diǎn)都不有趣啦,困擾哥好久-_-!~)--死活連接不上服務(wù)器了,不論是直接在Unity3DEditor中跑游戲還是打包好WebPlayer程序在瀏覽器中跑。其中
3、主要的錯(cuò)誤描述為:[SFSDEBUG]TCPSocketLayer:Generalexceptiononconnection:Unabletoconnect,asnovalidcrossdomainpolicywasfoundatSystem.Net.Sockets.Socket.Connect_internal(IntPtrsock,System.Net.SocketAddresssa,System.Int32&error,BooleanrequireSocketPolicyFile)[0x0000
4、0]in:0?atSystem.Net.Sockets.Socket.Connect(System.Net.EndPointremoteEP,BooleanrequireSocketPolicy)[0x00000]in:0?atSystem.Net.Sockets.Socket.Connect(System.Net.EndPointremoteEP)[0x00000]in:0?atSystem.Net
5、.Sockets.Socket.Connect(System.Net.IPAddressaddress,Int32port)[0x00000]in:0?atSfs2X.Core.Sockets.TCPSocketLayer.ConnectThread()[0x00000]in:0????經(jīng)過摸索查閱資料后發(fā)現(xiàn),這都是UnityWebPlayerSecuritySandBox機(jī)制的問題。Unity3D官方的文檔中解釋這種現(xiàn)象:Thiss
6、ecurityrestrictionsapplyonlytothewebplayer,andtotheeditorwhentheactivebuildtargetisWebPlayer.和我遇到的現(xiàn)象描述相符。說白了就是Unity3d為WebPlayer平臺(tái)搞了一個(gè)securitySandBox機(jī)制,Only在WebPlayer的安全機(jī)制中,我們?cè)谑褂肧ocket時(shí)需要服務(wù)器配置一個(gè)服務(wù)安全策略。因?yàn)闆]有在這方面進(jìn)行任何處理,所以SecuritySandBox阻止了程序的Socket連接,造成了以上的
7、現(xiàn)象。OK,問題找到了。??????解決辦法是:Unity提供了一個(gè)“sockpol.exe”這么一個(gè)工具,在“...UnityEditorDataToolsSocketPolicyServer“路徑下有sockpol.exe和它的源碼。如果你的服務(wù)器端是Windows平臺(tái)的話,直接Copy一個(gè)sockpol.exe到服務(wù)器端,在CMD中執(zhí)行??sockpol.exe--all即可為服務(wù)器端配置好SecuritySandBox安全策略。??說到這了,如果不認(rèn)真讀Unity3D官方關(guān)于Secu
8、ritySandBox的文檔是不是還是有點(diǎn)云里霧里的,不禁要問了:這個(gè)sockpol.exe是什么神奇的東西呢?????OK,我們可以不讀官方文檔,來看一看sockpol.exe的源代碼吧,剛才說了在“...UnityEditorDataToolsSocketPolicyServer“路徑下有sockpol.exe的源碼,從源碼中很容易就分析出原來sockpol.exe干的活就是監(jiān)聽WebPlayer平臺(tái)獲取SecuritySandBox安全策