今年的情人節(jié)用Unity定制貓貓后院當禮物吧

作者:Yumir
鬧脾氣正是親熱的表現(xiàn),察覺動靜,抱起親熱,笑瞇瞇地卷成一團,親近暖陽,稍作午休。
冬日午后的貓貓,喵嗚喵嗚叫著往腿上一窩,咕嚕咕嚕開始打呼嚕。

這個不能見面的情人節(jié),給對方一個程序員特色禮物——定制游戲吧。
看著懷里的貓浮現(xiàn)了這個想法,當然不是指情人節(jié)禮物啦,是指“我可以自己寫一個貓咪后院”這個想法。
這次的素材準備的比較簡單,游戲也是簡化版的,因為是定制游戲所以可以隨心所欲啦~
最簡單的放置養(yǎng)貓游戲就是在游戲里面隨機位置生成貓咪,但是這樣以來就會有貓貓騰空這種鬼畜狀態(tài),所以我做的是固定幾個位置可以生成貓貓,直到貓貓離開才會出現(xiàn)新的貓,大致內(nèi)容如下。
1、每隔一段時間判斷是否還有空位和貓糧,有則生成新貓。
2、貓每隔一段時間消耗貓糧,如果沒有貓糧了,貓就離開。
3、每只貓有游玩時間,時間到了不管有沒有貓糧都會離開。

首先我們需要一個后院~就是一張喜歡的背景圖,然后在背景圖上面設置可以生成貓貓的坐標點,為了方便管理我新建了一個空白游戲?qū)ο笞鳛樗凶鴺它c的父物體,在坐標點的Inspector面板點擊左邊的正方體選擇一個圖標可以在場景中更方便觀察我們設置的坐標點。


再來我們要生成貓貓,所以我們得先有貓咯,新建一個2D圖片精靈,再添加一個用來控制這只貓貓的腳本,這個腳本我們要編寫貓貓做的三件事:進入、吃飯、退出。將這個游戲物體 保存成預制體,就是貓的原型啦。
整個后院的貓貓的進出需要另一個腳本進行管理,我新建了一個Game Manager腳本,掛載在攝像機上,設置為單例模式。此外還管理著我們的貓糧和小魚干,貓在院子里吃貓糧,留下小魚干,都是需要在這個腳本上記錄的。
為了讓貓貓隨機出現(xiàn)在空位上,我用了一個隨機數(shù),在當前的空位中隨機一個位置生成貓咪,并且將這個貓咪的父物體設置為另一個空物體,對應的,在貓離開的時候又回到空位置的父物體。
public void CreateCat()
??? {
??????? if (catPos.transform.childCount > 0)
??????? {
??????????? Transform tran =? catPos.transform.GetChild(Random.Range(0, catPos.transform.childCount));
??????????? GameObject cat = Instantiate(catPre, tran);
????????? ??cat.GetComponent<CatPre>().LoginIn();
??????????? tran.parent = catPoint.transform;
??????? }
??? }
public void OutCat(CatPre cat)
??? {
??????? cat.transform.parent.parent = catPos.transform;
??????? fish += cat.fish;
??????? Destroy(cat.gameObject);
??? }
?
在游戲中多次需要用到計時器,所以我使用的是調(diào)用系統(tǒng)的time來判斷時間的方法,并且寫了一個方法,供不同的位置調(diào)用。
public bool Timer(ref float lastTime,float theTime)
??? {
??????? if (Time.time-lastTime>=theTime)
??????? {
??????????? lastTime = Time.time;
??????????? return true;
??????? }
??????? return false;
??? }
?
當調(diào)用上面的計時器方法得到true返回值的時候就可以執(zhí)行對應的動作,比如貓貓吃飯或者離開后院一個簡單的放置貓咪游戲的代碼就完成啦,當然你可以增加更多的裝飾,比如更多的UI效果,貓貓的動態(tài),更多貓貓和庭院等等。
我把我的項目上傳到百度網(wǎng)盤,期待你的錦上添花,找到喜歡貓貓的另一半哦。
鏈接:https://pan.baidu.com/share/init?surl=xcZhNJcMVvy7SLm3Snf6TQ
提取碼:7a3h
至于禮物里面的定制內(nèi)容,當然要自己想啦,有問題可以到群里提問討論哦。
歡迎加入游戲開發(fā)群歡樂攪基:869551769
有意向參與線下游戲開發(fā)學習的讀者可戳這里進一步了解:http://www.levelpp.com/