unity挂机游戏技术指南 安卓版
最近一時心血來潮做了個掛機小游戲,現(xiàn)在總結(jié)一下主要技術(shù)
最核心的就是超大數(shù)字的計算,在掛機游戲中動不動就是億億級數(shù)字的計算,已經(jīng)完全超出普通的類型的長度。但是c#提供BigInteger可以進行超大數(shù)字的計算,非常方便。但注意不能進行浮點數(shù)的運算。
使用時可以將string轉(zhuǎn)化為BigInteger 進行加減乘除運算,計算完后轉(zhuǎn)換回string方便序列化以及儲存 。
using System.Numerics; string s="1000000000000000000000000000000000"; BigInteger money= BigInteger.Parse(s)+BigInteger.Parse(s); s=money.ToString();轉(zhuǎn)換回字符串后可以方便處理在游戲中的數(shù)值顯示。如在我的游戲中的數(shù)值限定最多顯示7位數(shù),其余用10的次方表示。
public static string ConvertNum(BigInteger b){int num = b.ToString().Length - 7;string s = "";if (num>1)//9位數(shù)開始{s = b.ToString().Substring(0, 6)+"*"+"10^"+num;}else{s = b.ToString();}return s;}//10000000000=10000000*10^2;手機切換回游戲界面計算收益以及離線收益計算
在手機掛機游戲過程中,經(jīng)常會切換到其他應(yīng)用界面,回到游戲界面掛機數(shù)值也應(yīng)該會增加。所以我們應(yīng)該記錄離開界面時的時間,回到界面時獲得當前時間和之前記錄時間的差值,用來計算游戲在后臺時收益。
在安卓中我們可以使用OnApplicationPause函數(shù)進行應(yīng)用暫停時的調(diào)用。
還有一種情況就是游戲在后臺時被退出了,我們可以使用OnApplicationQuit函數(shù)進行退出時的調(diào)用,進行后臺收益的計算,前提是在 OnApplicationPause中已經(jīng)記錄了離開界面時的時間。
private void OnApplicationQuit(){ gameHTtime = Time.realtimeSinceStartup - startHTtime;//BigInteger profit=10000000000000000000000000;//money += profit* (int)gameHTtime;//這里可以保存游戲}離線收益計算是掛機游戲中非常重要的一環(huán),我選用的方案是計算退出游戲的時間與再次打開游戲的時間的差值,進行離線收益計算
具體可以參考
Unity中獲取離線時間
最后可以看看我做的小游戲是否是自己想要的效果
游戲頁面
總結(jié)
以上是生活随笔為你收集整理的unity挂机游戏技术指南 安卓版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Genexus 15 安卓SDK配置项
- 下一篇: [POI2005]DWU-Double-