android信鸽推送demo_【厚积薄发】手游推送方案
這是第155篇UWA技術(shù)知識分享的推送。今天我們繼續(xù)為大家精選了若干和開發(fā)、優(yōu)化相關(guān)的問題,建議閱讀時間10分鐘,認真讀完必有收獲。
UWA 問答社區(qū):answer.uwa4d.com
UWA QQ群2:793972859(原群已滿員)
本期目錄:
手游推送方案
Unity UI特效和前端的溝通問題
低端機上是否要開啟多線程渲染
RenderTexture在手機端內(nèi)存變大
自己實現(xiàn)Text描邊引起DrawCall增加問題
Q:例如《率土之濱》和《部落沖突》這種游戲,如果你的主城被別人打了,手機上會收到推送通知說有人在打你。有個問題就是游戲已經(jīng)殺死掉了,為什么還能收到這個通知?這種是實時的通知,不是定時那種,請問下這種要怎么做?
A1:這種準確推送時間客戶端是計算不出來的,所以還是得依靠服務器。Android這塊以前用過極光推送,還行。iOS有提供服務器推送方案。大概原理就是,我們的服務器通知(蘋果的服務器或者極光的服務器)再轉(zhuǎn)向玩家進行推送。
感謝雨松MOMO@UWA問答社區(qū)提供了回答
A2:騰訊的信鴿也可以,推送分服務器推送和本地推送。一般這種需求我們需要本地推送,iOS系統(tǒng)本身支持這種推送。安卓并沒有對應的API,需要自己啟動Server,并與某系統(tǒng)進程綁定,才能保證進程不被殺掉,但是現(xiàn)在各大廠商都自己制定系統(tǒng),很難做到這一步,也有部分廠商的App在系統(tǒng)白名單里,后臺進程不會被殺掉。
感謝鄭驍@UWA問答社區(qū)提供了回答,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/5cac455026ca1f200dab8f16
資源管理Q:我們的游戲現(xiàn)在有很多UI特效給特效去用Animation和粒子做,但是有個問題是,他們做很難注意性能問題,而且我一旦改變一些屬性,又得重新讓它K幀,這樣做下來交流成本很高,不知道有沒有什么好的解決方案?
A1:我是這樣做的,就是美術(shù)做的特效Prefab程序不直接用,而是提供一個工具供他們導出生成一個新的Prefab。
這樣的好處就是導出的時候可以進行檢查,比如檢查貼圖數(shù)量、粒子數(shù)量、動畫等等,我們可以提前定好UI粒子特效的標準,導出的時候發(fā)現(xiàn)資源不符合規(guī)范或者有問題,就給他們提示錯誤,Prefab不予以導出。這樣美術(shù)就無法上傳SVN程序,就不會更新到有問題或者有效率問題的特效。
其實這個思路不僅特效可以用,UI界面、角色、場景等等,我都是這么做的,Prefab自動生成的同時還可以做一些額外的邏輯。
感謝雨松MOMO@UWA問答社區(qū)提供了回答
A2:我和樓上的做法類似,不能用導入器強制規(guī)范的資源,每天凌晨打包機啟動一個資源掃描動作。把不符合規(guī)范的掃出來生成報告。
感謝王亮@UWA問答社區(qū)提供了回答
A3:我的思路:
自己編寫Timeline編輯器(Unity,Unreal官方也可),在編輯器中將美術(shù)相關(guān)的操作范圍規(guī)范好,例如播放單粒子特效時的個數(shù)及模型、動畫、材質(zhì)等資源使用范圍,最終在生成特效數(shù)據(jù)時,再進行資源和數(shù)據(jù)檢查以及資源整理,避免資源冗余及不規(guī)范。
優(yōu)勢:
1、資源和數(shù)據(jù)剝離,各資源間沒有耦合,可快速修改和調(diào)整;
2、數(shù)據(jù)在編輯模式下可共用、也方便聯(lián)合制作,可快速處理沖突;
3、模板化特效,大大提高開發(fā)效率。
兩點需要注意:
1、FBX資源冗余,Unity默認關(guān)聯(lián)模型、動畫資源為FBX路徑。我采取的策略是,將使用到的資源,從FBX中提取,制作成Asset文件(Unity本身也是這么做的,只不過幫他提前做了而已,也會提高打包速度),將Timeline上的資源依賴換成新生成的資源。
2、編輯器本身盡量做好回放功能(尤其是粒子)。
感謝鄭驍@UWA問答社區(qū)提供了回答,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/5cb46c723ded097520c24ced
渲染Q:多線程渲染到底是開還是不開呢?在低端機,比如紅米Note2開多線程渲染有幫助嗎?還是說直接關(guān)閉比較好?
A1:題主不妨在紅米Note2上具體測試下,看下開關(guān)的之后的性能差異。了解到現(xiàn)在挺多大型的ARPG都開啟了多線程渲染。
感謝張銳@UWA問答社區(qū)提供了回答
A2:對于目前中國市場的手游,都建議開啟多線程渲染功能,不僅可以大幅降低主線程上渲染模塊的壓力,同時還可以極大降低紋理、Mesh和Shader等資源加載的耗時。
當然,沒有一種方法是一本萬利的,也有它一定的限制和問題,具體我們之前碰到過的問題,可以直接在UWA問答里搜索多線程渲染進行查看。
該回答由UWA提供,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/5cac6d1326ca1f200dab8f19
RenderTextureQ:RenderTexture AA設為1 depth是0,在PC端內(nèi)存大小是對的,到手機端內(nèi)存增長了三倍左右,為什么呢?
A1:三倍不太應該,建議通過UWA GOT Online服務或者UWA線上深度測評來查看每個RenderTexture的具體參數(shù),分辨率、格式等參數(shù)是否正常。
該回答由UWA提供
A2:內(nèi)存有變化可能是因為分辨率,RenderTexture的大小是跟著分辨率走的,你比較下你在PC上看的RenderTexture分辨率和手機上RenderTexture分辨率分別是多大。
感謝deviljz@UWA問答社區(qū)提供了回答,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/5cb58854d3016c751b5a4430
UIQ:如圖,我們項目自己實現(xiàn)的文字描邊,按照我對Unity的合批理解,應該是2個DrawCall,但是實際卻是4個,猜測應該是TextShaderOutline的ModifyMesh函數(shù)中SetUIVertex方法導致合批失敗。如果是,不知道原理是什么?有沒有更好的解決方案呢?
功能地址TextureShaderOutline.rar
(http://t.cn/Eay1a1D)
A:你這個方案和(http://t.cn/Eay1yW9)有點類似,且做過改進吧。我看了你們只使用了一個材質(zhì)球。不過我這邊Unity版本低一些,你的方案打開有點亂,感覺顯示有問題,我把紅色字左右拖動,顏色會變,很奇怪。
用博客上原方案,我試了這種疊加的情況能合批(前提是材質(zhì)球用同一份,顏色不一樣,就會是2份材質(zhì)球了)。
我再針對Unity 2018,調(diào)整了一下方案,看看是不是滿足你們的需求:
Unity 2018能傳遞UV2、UV3,然后tangent.zw normal.z 也勉強可以用一下,所以用UV1、UV2存放最原始的UV區(qū)域(裁剪用),UV3、tangent.zw傳遞outlinecolor,normal.z傳遞outlineborder,這樣顏色和寬度變化就不需要改材質(zhì)球,就能合批了。(注意z軸方向不能縮放,且UI和所在canvas要平,否則tangent.z和normal.z傳遞會不準確)
參考項目test2018_1_outline.rar
(http://t.cn/Eay1EWu)
(題主Rhett補充:我們這邊將ModifyMesh方法中去掉position的上傳,就可以合批了。)
感謝真木@UWA問答社區(qū)提供了回答,歡迎大家轉(zhuǎn)至社區(qū)交流:
https://answer.uwa4d.com/question/5c98a8bc419e740b2b8afb08
今天的分享就到這里。當然,生有涯而知無涯。在漫漫的開發(fā)周期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網(wǎng)站上準備了更多的技術(shù)話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官網(wǎng):www.uwa4d.com
官方技術(shù)博客:blog.uwa4d.com
官方問答社區(qū):answer.uwa4d.com
官方技術(shù)QQ群:793972859(原群已滿員)
封面圖來源于網(wǎng)絡
UWA DAY 2019精彩盤點!
近期精彩回顧
【厚積薄發(fā)】場景貼圖的分級策略!
【厚積薄發(fā)】CommandBuffer的GPU開銷!
【厚積薄發(fā)】PostProcessing V2 效果異常!
【厚積薄發(fā)】如何規(guī)劃UI圖標圖集!
總結(jié)
以上是生活随笔為你收集整理的android信鸽推送demo_【厚积薄发】手游推送方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: div+css的布局方式进行设计成品作业
- 下一篇: code iban 是有什么组成_「面试