最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MV分離

2023-08-11 00:03 作者:偽亂  | 我要投稿

1、界面和邏輯分離

邏輯和界面分離,是游戲開發(fā)最核心的思路。

簡(jiǎn)單的說,游戲的邏輯類,依賴于你的游戲框架,而并非unity。

什么是游戲框架呢?也就是具備獨(dú)立的生命周期的框架。你的游戲邏輯是應(yīng)該完全依賴于自己的游戲框架。這樣,你只需要改動(dòng)一下框架接口,就可以進(jìn)行代碼移植。

UI最簡(jiǎn)單就是MVC模式,MVC是一套相對(duì)來說簡(jiǎn)單的代碼分離的方案。就個(gè)人感覺而言。其實(shí)如果不考慮重構(gòu),多數(shù)情況下,V依賴于M也是可以的。不需要完全分離。

所以一般游戲應(yīng)該分為邏輯層、視圖層、數(shù)據(jù)層。

數(shù)據(jù)層通常指基本的配置數(shù)據(jù),玩家的游戲數(shù)據(jù)。

邏輯層是游戲的核心邏輯,是演變數(shù)據(jù)的邏輯

視圖層是展示游戲數(shù)據(jù)的界面。同時(shí)也具備與邏輯交互的接口,以便玩家控制游戲。

V的一個(gè)問題是,如果數(shù)據(jù)變化了,UI應(yīng)該怎么刷新。

刷新UI的方法有兩種,

1、對(duì)于進(jìn)度條這類,變化很頻繁的,由UI定時(shí)輪詢

2、對(duì)于刷新次數(shù)不頻繁的,比如給背包中添加一個(gè)道具。此時(shí)推薦通過事件傳遞。


做兩個(gè)簡(jiǎn)單的例子。2d和3d。rpg

在游戲引擎中,如果需要讓go產(chǎn)生變化,相應(yīng)的需要為go綁定與游戲邏輯耦合的腳本。這些腳本會(huì)控制go產(chǎn)生變化,從而讓玩家能夠隨時(shí)掌握數(shù)據(jù)的變化(即時(shí)反饋)。

在物理模擬上,也有兩種方案,如果是簡(jiǎn)單的位置判斷,AABB也可以實(shí)現(xiàn),那么完全不用給對(duì)象添加碰撞體,在自定義的簡(jiǎn)單物理系統(tǒng)中進(jìn)行模擬,效率更高。但是對(duì)于fps這種,需要相對(duì)完備的碰撞體的游戲,則需要使用游戲自帶的物理系統(tǒng)進(jìn)行模擬,而發(fā)射出來的子彈,也是一個(gè)實(shí)實(shí)在在具備有游戲邏輯的實(shí)體。這些實(shí)體通過相互的碰撞事件來驅(qū)動(dòng)游戲邏輯。

而各種特效,只是特效,不應(yīng)該具備任何邏輯。

也就是說,如何做碰撞判斷可以交給引擎。但是如何處理碰撞產(chǎn)生的效果,有游戲邏輯進(jìn)行處理。游戲邏輯不應(yīng)依賴于視圖,也就是游戲引擎部分,理論上,游戲視圖展示的效果無論多復(fù)雜,他都不能影響游戲邏輯的復(fù)雜度。也就是說,視圖的設(shè)計(jì)不應(yīng)該影響游戲邏輯的設(shè)計(jì)。

2、數(shù)據(jù)驅(qū)動(dòng)

保存數(shù)據(jù)的方案有很多種,在unity能夠支持c#熱更后,甚至有將配表數(shù)據(jù)保存為C#代碼,從而實(shí)現(xiàn)而小的內(nèi)存,更快的加載。

但使用數(shù)據(jù)驅(qū)動(dòng)的目的是,在盡量少改動(dòng)代碼的情況,實(shí)現(xiàn)更多的游戲內(nèi)容。實(shí)現(xiàn)一個(gè)數(shù)據(jù)驅(qū)動(dòng)的關(guān)卡,等于實(shí)現(xiàn)了無數(shù)個(gè)數(shù)據(jù)驅(qū)動(dòng)的關(guān)卡。

因此,數(shù)據(jù)驅(qū)動(dòng)并不意外著不需要增加代碼。


MV分離的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
古田县| 永平县| 佳木斯市| 上杭县| 鱼台县| 井陉县| 台北市| 许昌市| 汉阴县| 长垣县| 子洲县| 邮箱| 呼图壁县| 惠水县| 鲜城| 泊头市| 白玉县| 新竹县| 石狮市| 洪湖市| 汾阳市| 灵丘县| 临清市| 交城县| 固镇县| 彩票| 甘南县| 伊金霍洛旗| 高碑店市| 武陟县| 闽清县| 上栗县| 泸溪县| 东乡族自治县| 沂南县| 元江| 绥芬河市| 通州区| 浏阳市| 卢湾区| 台前县|