成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

客戶端是什么意思(pc客戶端1和2是什么意思啊)

我大多數(shù)時(shí)候向來(lái)不喜歡直接用別人的代碼,本著能自己寫就自己寫的原則,客戶端結(jié)構(gòu)也一直都是我自己在維護(hù).

創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如成都地磅秤等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致贊譽(yù)。

代碼結(jié)構(gòu)

整個(gè)客戶端大體上是分為Frame和Game兩大部分.Frame為框架層,通用于所有項(xiàng)目.Game是游戲?qū)?只能寫當(dāng)前項(xiàng)目才會(huì)用到的代碼.

Frame:說(shuō)是通用于所有項(xiàng)目有點(diǎn)夸大了,畢竟游戲類型太多了,商業(yè)游戲引擎都不敢說(shuō)通用于所有游戲,但這確實(shí)是這部分設(shè)計(jì)的初衷.其實(shí)這部分就是沉淀下來(lái)的代碼,就算是重新做一個(gè)新的項(xiàng)目,這部分代碼也仍然可以直接使用.

Camera:再次對(duì)unity的Camera封裝一層.提供封裝所有的攝像機(jī)相關(guān)的常用操作.

Character:封裝角色,游戲中所有的看起來(lái)像個(gè)人,或者能夠當(dāng)作一個(gè)人的都是角色.

ClassPool:對(duì)象池,適用于所有類對(duì)象,就是需要申請(qǐng)時(shí)先從未使用的對(duì)象列表時(shí)查找,有可以重復(fù)使用的就返回出去,沒(méi)有的就創(chuàng)建一個(gè).

CommandSystem:命令系統(tǒng).

特點(diǎn):

1.封裝邏輯

2.連接邏輯與界面,以及項(xiàng)目中任何模塊

3.延遲執(zhí)行

4.線程安全,在子線程中可以使用延遲命令將邏輯放到主線程執(zhí)行

5.日志打印

基于以上特點(diǎn),命令系統(tǒng)一般是用在表示一件邏輯意義上的事件,命令中可訪問(wèn)任意項(xiàng)目代碼,所以當(dāng)一個(gè)事件關(guān)聯(lián)多個(gè)模塊時(shí),應(yīng)該將相關(guān)代碼封裝到一個(gè)命令中

比如數(shù)據(jù)改變時(shí),即有數(shù)據(jù)存儲(chǔ)的改變,也有界面相應(yīng)的改變,那就需要將該邏輯封裝到命令中,在合適的地方調(diào)用命令即可.調(diào)用方只需要關(guān)心觸發(fā)了什么事件,而不需要關(guān)心事件具體內(nèi)容.

命令系統(tǒng)的最原始靈感來(lái)自于天龍八部代碼中的命令,天龍八部中的命令只是一個(gè)結(jié)構(gòu)體,加上一堆無(wú)具體類型的參數(shù),然后發(fā)送的時(shí)候指定那個(gè)參數(shù)是什么意思,用的時(shí)候再?gòu)?qiáng)轉(zhuǎn)類型.

但是我設(shè)計(jì)的命令系統(tǒng)核心是邏輯即對(duì)象.由此衍生出一些其他的特性.延遲執(zhí)行,線程安全等等.

Common:大多不知道怎么歸類的以及公共使用的部分都放在這里了,比如工具函數(shù),全局定義,枚舉定義,等等.

Component:組件,思想倒是來(lái)自于unity,不過(guò)我也就一開始用了一個(gè)月的unity,就知道個(gè)組合代替繼承這個(gè)說(shuō)法.然后再次使用unity已經(jīng)是2年后了.這里的組件核心思想是所有可以從類的核心中拆分出來(lái)需要單獨(dú)更新的內(nèi)容都可以寫成一個(gè)組件.所以這里組件強(qiáng)調(diào)的是邏輯更新.并不是把所有的東西都放到組件里面.相當(dāng)于組合與繼承的結(jié)合.

DataBase:數(shù)據(jù)庫(kù)相關(guān),比如MySQL,SQLite,以及自己寫過(guò)的數(shù)據(jù)表格.

DynamicAttackScript:代碼中動(dòng)態(tài)附加到GameObject上的腳本,其實(shí)這里 一般都是一些需要在面板上顯示調(diào)試信息的腳本.

Effect:粒子特效的封裝,提供一些特效的常用操作.

GameFramework:核心管理器.以及一些其他獨(dú)立的系統(tǒng).

GamePlugin:主要是提供調(diào)用外部插件的接口.另外一個(gè)項(xiàng)目寫的插件,然后放到項(xiàng)目的指定目錄里,就會(huì)自動(dòng)調(diào)用.

GameScene:游戲邏輯場(chǎng)景.

游戲總體劃分為多個(gè)邏輯場(chǎng)景,分別代表游戲不同的階段,一般由所使用的資源和邏輯共同決定邏輯場(chǎng)景劃分.

一個(gè)邏輯場(chǎng)景包含若干個(gè)流程,流程以樹形結(jié)構(gòu)存儲(chǔ).邏輯場(chǎng)景至少包含一個(gè)起始流程和退出流程.

流程表示邏輯場(chǎng)景內(nèi)部的狀態(tài)劃分,流程的切換一般都會(huì)有界面的相應(yīng)切換.

進(jìn)入流程時(shí)的操作一般與退出流程時(shí)的操作對(duì)應(yīng),比如進(jìn)入流程時(shí)打開了一個(gè)界面,那退出流程時(shí)就應(yīng)該將此界面關(guān)閉.進(jìn)入流程時(shí)禁用了某項(xiàng)操作,退出流程時(shí)就應(yīng)該重新啟用此操作.

流程之間不允許互相訪問(wèn),流程之間應(yīng)該是相對(duì)隔離的,僅允許在進(jìn)入或者退出流程時(shí)判斷上一個(gè)流程或者下一個(gè)流程的類型來(lái)執(zhí)行不同的邏輯.

流程切換時(shí)僅會(huì)停止對(duì)舊流程的更新,啟用新流程的更新,不會(huì)銷毀任何流程.

邏輯場(chǎng)景切換時(shí)會(huì)銷毀舊邏輯場(chǎng)景以及此場(chǎng)景的所有流程,加載并初始化新邏輯場(chǎng)景.

一個(gè)邏輯場(chǎng)景一般會(huì)使用若干個(gè)資源場(chǎng)景,并且根據(jù)流程切換資源場(chǎng)景顯示.

其實(shí)主要作用就是區(qū)分不同游戲狀態(tài),邏輯隔離,不同邏輯之間盡量不會(huì)有耦合.

LayoutSystem:前身是C 寫的UI框架,C 從opengl開始,封裝UI,隱藏底層具體實(shí)現(xiàn),只需要上層關(guān)心游戲界面邏輯即可.從C 轉(zhuǎn)到unity后,這部分也只是把底層unity已經(jīng)實(shí)現(xiàn)的部分替換掉,上層基本沒(méi)多大變化.

MovableObject:字面意思就是可移動(dòng)物體,也就是游戲中所有需要移動(dòng)或者具有位置屬性的物體的基類.

ObjectPool:物體池,與ClassPool的區(qū)別就是,這個(gè)池里存的是GameObject,ClassPool里存的是類對(duì)象.

也就是所有從磁盤預(yù)設(shè)實(shí)例化出來(lái)的GameObject都會(huì)存在這個(gè)池里,除非指定了銷毀時(shí)是真正銷毀,否則都是默認(rèn)回收存起來(lái).

ResouceManager:資源管理器,統(tǒng)一了從AssetBundle和Resources加載的方式,使上層只需要知道加載了某個(gè)資源,而不需要具體關(guān)心需要從哪兒加載,從哪兒加載是一開始讀取配置文件就已經(jīng)決定了的.一般情況下編輯器開發(fā)環(huán)境下從Resources加載,打包后從AssetBundle加載.也可以在編輯器開發(fā)環(huán)境下測(cè)試從AssetBundle加載.

Socket:網(wǎng)絡(luò)部分.自定義的通信協(xié)議.雖然現(xiàn)在有很多成熟的商業(yè)序列化庫(kù)用來(lái)進(jìn)行網(wǎng)絡(luò)通信,但是我還是從我自己實(shí)際情況觸發(fā),寫一套自己的序列化通信協(xié)議.畢竟也不難,寫出來(lái)效率也不低,優(yōu)化也可以由自己完全掌握.

以上就是Frame部分的架構(gòu)介紹,雖然算不上有多好,但是總歸是自己在這些年不斷的摸索中總結(jié)出來(lái)自己可用的一套結(jié)構(gòu).從字?jǐn)?shù)上也看得出,其中有兩個(gè)比較重要的部分,CommandSystem和GameScene,大部分功能都需要依賴這兩個(gè)系統(tǒng)來(lái)實(shí)現(xiàn).還有一個(gè)比較重要,Component,這三個(gè)部分相輔相成,撐起了大部分的客戶端功能.

文章標(biāo)題:客戶端是什么意思(pc客戶端1和2是什么意思啊)
本文網(wǎng)址:http://jinyejixie.com/article22/siocc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣企業(yè)建站、企業(yè)網(wǎng)站制作、軟件開發(fā)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
五峰| 新丰县| 阿合奇县| 子长县| 太仓市| 晋江市| 乌拉特后旗| 隆化县| 年辖:市辖区| 和硕县| 扶风县| 佳木斯市| 融水| 綦江县| 贡觉县| 桂林市| 双柏县| 项城市| 诸城市| 石台县| 金山区| 博客| 河南省| 遵义县| 仲巴县| 怀远县| 图片| 通河县| 岳池县| 鄂托克旗| 普兰县| 鲜城| 平和县| 荆门市| 高要市| 墨玉县| 怀来县| 江山市| 响水县| 桂东县| 望江县|