iT邦幫忙

0

Unity WebGL發布於IIS並連結至SQL Server

  • 分享至 

  • xImage
  •  

一、 前置作業
請參閱https://blog.hungwin.com.tw/windows-server-iis-php-install/

  1. 安裝IIS
  2. 安裝PHP
  3. Unity Web環境

二、 WebGL讀取StreamAsset內的.txt檔
為了要方便更動連結SQL Server所需的資訊,例如IP位址、資料庫名稱、帳號、密碼、PHP檔案位置等連結訊息,則使用了讀取外部Txt檔的方式進行連結前的配置。
由於Unity WebGL無法使用System.IO內的File類別,因此需要使用協程來實現此連結方式。我們需要啟用協程後再關閉協程,避免額外消耗資源,接著是創建列舉器,並在列舉器中使用UnityWebRequest來讀取StreamAsset內的.txt檔的內容。
使用Uri儲存檔案路徑,接著用UnityWebRequest.Get()函式讀取其內容,最後用.downloadHandler.text提取內容,讀取出來的內容儲存在全域變數中。而yield return地方必須回傳SenWebRequest函式。
https://ithelp.ithome.com.tw/upload/images/20220605/20149540XLgGa8uyyp.jpg
圖1:WebGL讀取StreamAsset的.txt檔(PHPTODatabase)

三、 WebGL利用PHP的echo回傳值取得SQL Server上的資料
Unity WebG無法直接使用SqlConnection.Open()的方式來與SQL Server進行連線,也無法使用WebRequest類別來連線。
唯一能使用的方式是使用UnityWebRequest來連結PHP,在PHP當中去抓SQL Server的資料,取到值後回傳給Unity。
前面的作法與第二部分,唯一不同是UnityWebRequest.Get()裡要放入PHP檔案位置及給PHP的傳入值。傳入值放入從.txt檔取出的資料,IP、資料庫名稱、帳號、密碼、PHP檔案位置,最後還得放入SQL語法。最後取得PHP的echo內容是用.downloadHandler.text的方式。

https://ithelp.ithome.com.tw/upload/images/20220605/20149540CqAOJuT4Ha.jpg

https://ithelp.ithome.com.tw/upload/images/20220605/20149540wApxZ3WSWd.png

圖2:WebG讀取PHP的echo內容(PackageTable)

四、 PHP上的實作
從Unity傳來的值使用$_Get來傳入PHP程式內($_Get[‘傳入值名稱’]),接著使用sqlsrv_connect來查詢SQL Server中的資料,此範例是以Json格式來回傳資料。
While()每次結果都是一行資料,由於查詢資料可能有多行,因此最後除了要echo資料行以外,最後須加上來換行,能清楚表示每行結果。
https://ithelp.ithome.com.tw/upload/images/20220605/20149540883DPHXVwB.png
圖3:PHP接收Unity傳來的內容,並進行後續實作

五、 Unity上的程式佈置
在讀取完PHP資料後,把資料存入string二維陣列中,並新增每行UI物件,Add_Row函式傳入一行資訊。由Prefab複製物件後,並將資訊寫入每個TextUI當中,如圖4。

https://ithelp.ithome.com.tw/upload/images/20220605/20149540yJEttdcKV7.png
圖4:資料行UI新增
備註:上方同樣為PackageTable函式;Table是圖5當中的Table物件;Tophp是引入物件上的PHPTODatabase類別。
https://ithelp.ithome.com.tw/upload/images/20220605/20149540Ef4roXkqUS.png

將完成的PackageTable類別放入圖5的PackageTable物件中,Row_Prefab放入設計好的儲存格,設計好的儲存格以Prefab儲存。PHPToDatabase隨意放入任一物件當中,用程式指向該類別的物件位置。Unity表格設計請參閱https://blog.csdn.net/yongh701/article/details/70858083。最後完成圖如圖6。

https://ithelp.ithome.com.tw/upload/images/20220605/20149540gdDGGV9CaI.png
圖6:Web抓取SQL Server資料後,在Unity內以表格顯示


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言