中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

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

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

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

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

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

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

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

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

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

特點(diǎn):

1.封裝邏輯

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

3.延遲執(zhí)行

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

5.日志打印

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

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

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

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

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

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

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

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

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

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

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

GameScene:游戲邏輯場景.

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

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

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

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

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

流程切換時僅會停止對舊流程的更新,啟用新流程的更新,不會銷毀任何流程.

邏輯場景切換時會銷毀舊邏輯場景以及此場景的所有流程,加載并初始化新邏輯場景.

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

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

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

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

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

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

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

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

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

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

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

廣告

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

成都網(wǎng)站建設(shè)
利川市| 枣强县| 新密市| 绍兴县| 方正县| 龙泉市| 舒兰市| 宁南县| 大安市| 湛江市| 黑山县| 宜章县| 漯河市| 花莲县| 扎囊县| 海兴县| 九龙城区| 长丰县| 昭觉县| 新津县| 襄垣县| 泸水县| 紫云| 正定县| 社会| 灵山县| 蓝田县| 安陆市| 娱乐| 徐汇区| 伊春市| 舒城县| 威宁| 怀远县| 昭通市| 莒南县| 德兴市| 茂名市| 双牌县| 龙泉市| 宁城县|