前往
大廳
主題

【Unity WebGL】在Github page上host Unity WebGL、Facebook分享功能、安卓與ios包Unity專案雜談

%%鼠 拒收病婿 | 2021-03-01 21:29:52 | 巴幣 12 | 人氣 867

前言:
公司要做個很簡單的益智遊戲(拖拉物件答題),原本是做本地執行檔,後來改成web遊戲(不確定是給客戶host還是公司host),然後連假前同事問我能不能加個FB分享功能,出去爽玩回來後剛好做個小研究收收心XD。

瀏覽圖:
用我的Github page來Host,網址(在game標籤頁那邊,等等要做遊戲prototype,內容物大概會不一樣)。網頁製作過程可以看上篇

作法參照這個影片,雖然他的目標平台是安卓,但web也通吃。(在這之前看了幾個web版的教學都失敗):

  • FB設定:
網站那邊需要填入自己Host的網址。試過用Gamejolt來host,不過沒有成功。
((網站網址只能設定一個,有點小氣
(「立即開始」那邊不用看)

Unity打開 Facebook>Setting貼上自己的ID。

  • 也許能加快Web GL讀取速度的作法:
不知道在哪篇文章看到,說把Compression format改成Disabled能加快讀取速度。
(備註: 可解決網頁debug出現"ReferenceError: unityFramework is not defined at HTMLScriptElement.n.onload"的錯誤


  • 把遊戲放在github page上:
輸出成webGL,整包丟在網頁目錄下,再用超連結連去該目錄下的index.html即可。


差不多這樣就能用了。

其他:
雖然分享按鈕程式碼可以設定title或內容等資訊,但根據官方文件來看,那些都已經不適用了,亦即contentTitle和contentDescription都設心酸的而已。


雜談:
實習的心得: 公司的需求不單單只是"遊戲"。甚麼都略懂一點比較好,至少在他人提出一個新功能的時候有能力判別該功能的可行性。

之前跟公司做的是手機APP內包含Unity遊戲,輸出成IL2CPP編碼,由外層App呼叫開啟,玩完後再由Unity呼叫App方法收回遊戲,做法可以參考官方文件:安卓IOS

不太知道APP端怎麼處理的,Unity這邊的處理是放一個全黑畫面的MainScene,上面有個GameObject隨便取叫"Start",上面掛著有StartGame(string _json_text_Info)方法的腳本。
APP開啟Unity時呼叫:
UnitySendMessage("Start", "StartGame", "json data");
再由Unity該方法做後續處理。(例如依照用戶資料切換scene)

Unity這邊遊戲結束時,呼叫"關閉遊戲"的方法,該方法並不是真的關掉遊戲,而是給外層的APP打一個pass。(若用Application.Quit()會連外層的APP一起關掉。)
安卓作法(關閉遊戲的方法在這裡統一叫做"callBackClick"):

IOS作法:

對,就只是call而已,實際切換回app就交給外層app工程師去處理了。



雜談2:
目前幫公司做最多的是AR的東西。

因為APP上架要維護,又要分安卓與IOS版本,所以公司偏向能用Spark AR做的都盡量用Spark AR做,但偏偏Spark AR腳本文獻很少,上傳FB濾鏡審查標準也很G8,有次某個濾鏡一直被退件,我就在備註欄用英文打"這濾鏡完全符合審查標準,而我下不了班就因為這個濾鏡一直審查不過。"  送出幾分鐘馬上多了4個違規事項給打發回來,有夠怕,看來審查人員也夠兇。


雜談3:
雖然這款目標是放在web上玩,但同事也問能不能用手機玩、用手機瀏覽有沒有RWD功能等問題
當下,我:
(更新: 測試發現webGL會把手指當成mouse input,所以可以通用

送禮物贊助創作者 !
0
留言

創作回應

御安鴨·摸頭害鴨哭
感覺轉成手機會有一堆錯誤
2021-03-02 13:55:23
%%鼠 拒收病婿
發現手機在web上的操作也被視為mouse input,所以可以通用。然後手機看WebGL會自動滿版,還滿方便的耶!!
2021-03-02 14:05:56
蘇姆INKO_IQ
「測試發現webGL會把手指當成mouse input,所以可以通用」
我第一個想到的居然是統神端火鍋小遊戲的其中一個操作模式
2021-03-02 23:17:53
%%鼠 拒收病婿
一代一代一代
2021-03-06 13:48:18
%%鼠 拒收病婿
debug備忘錄:
如果程式碼分安卓、ios的部分,記得宣告的時候用#if去框起來,不然輸出il2cpp會失敗
例如這是ios的extern方法,輸出成安卓il2cpp會失敗:
[System.Runtime.InteropServices.DllImport("__Internal")]
//Declare the function you want to call in iOS
public static extern void callBackClick();
2021-05-07 22:26:48
追蹤 創作集

作者相關創作

更多創作