国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

2020,Laya最新中高級(jí)面試靈魂32問(wèn),你都知道嗎?

2020-10-06 16:25 作者:博毅創(chuàng)為  | 我要投稿

前言

上個(gè)月陸續(xù)給大家更新了cocos和unity的面試題,相信讀者朋友們看了之后多多少少也有了一些收獲,在之前的分享中,有部分讀者粉絲一直私信阿博,讓我分享一些金九銀十服務(wù)器和Laya的面試題,讓大家都能趕著去面試。



所以,今天阿博就來(lái)給大家分享關(guān)于Laya的面試題了?。?!

啥?今天阿博怎么這么直接,不墨跡了

這不還在國(guó)慶放假,大家還在休息嘛! 咱們就化繁為簡(jiǎn),直接點(diǎn),進(jìn)入正題不好嗎?



那么接下來(lái)就請(qǐng)各位讀者朋友好好看、好好學(xué)咯?。?!
請(qǐng)仔細(xì)查閱~

================================================================================================

問(wèn)題1: LayaBox?的發(fā)展經(jīng)歷了哪些階段?

LayaBox 1.x出來(lái)的時(shí)候主要是解決了FLASH網(wǎng)頁(yè)游戲轉(zhuǎn)成H5頁(yè)游,轉(zhuǎn)手游。將Flash的AS轉(zhuǎn)成H5的代碼,然后在跑自己的內(nèi)核來(lái)驅(qū)動(dòng)H5的代碼。后來(lái)隨著Flash沒(méi)落,H5興起,LayaBox發(fā)展成性能最好的次世代H5游戲引擎,后來(lái)也支持了手游。

LayaBox2.x階段進(jìn)一步優(yōu)化了3D游戲引擎,并支持了微信小游戲,抖音小游戲,QQ小游戲等。開(kāi)發(fā)語(yǔ)言同時(shí)支持了JavaScript/TypeScript/ActionScript

LayaBox 下一個(gè)階段目標(biāo)主要有兩個(gè),第一個(gè)是進(jìn)一步完善LayaAir的引擎,讓他成為最好用的游戲引擎之一,同時(shí)推出了LayaME,做UGC。

問(wèn)題2: LayaBox?做3D H5?小游戲到底怎么樣?

LayaBox做的3D微信小游戲在小游戲市場(chǎng)份額中占90%以上, 是非常成熟的H5小游戲開(kāi)發(fā)引擎,同時(shí)也可以打包發(fā)布到Native平臺(tái)。

問(wèn)題3: Laya與Unity?之間到底是如何配合的呢?

Laya 有自己的引擎內(nèi)核,有自己的開(kāi)發(fā)工具,同時(shí)他也巧妙的用了Unity的編輯器,他是如何來(lái)做的呢?Laya 引擎內(nèi)核是獨(dú)立的,純代碼開(kāi)發(fā)完整的游戲引擎,同時(shí)游戲引擎也要提供工具,2D編輯器,是Laya自己提供的,3D編輯器Laya沒(méi)有自己做而是用了Unity來(lái)編輯場(chǎng)景,然后再工具把Unity編輯的場(chǎng)景和角色預(yù)制體轉(zhuǎn)成Laya可以使用的格式,這樣3D引擎和3D資源就可以用市場(chǎng)比較成熟的Unity,好用,很多資源可以共用,而且市場(chǎng)很多U3D開(kāi)發(fā)的3D游戲,Laya這樣做能將這些游戲轉(zhuǎn)成H5的小游戲。

問(wèn)題4: Laya?到底使用J?avaScript?開(kāi)發(fā)好還是使用T?ypeScript開(kāi)發(fā)好?

JavaScript是弱類(lèi)型編程語(yǔ)言,開(kāi)發(fā)比較靈活,TypeScript對(duì)類(lèi)型的要求比較嚴(yán)格,從靈活性來(lái)說(shuō)Js更靈活,但是靈活的同時(shí),等項(xiàng)目帶了不好維護(hù),所以很多公司慢慢的傾向于選擇強(qiáng)類(lèi)型的TypeScript來(lái)開(kāi)發(fā)。TypeScript底層運(yùn)行是是JS,所以建議先學(xué)習(xí)JS再學(xué)習(xí)TS

問(wèn)題5: Laya?如何使用圖集?

Laya 在做UI的時(shí)候,沒(méi)有圖集的概念,直接用單個(gè)小圖片,UI制作完成以后,Laya會(huì)根據(jù)文件夾為我們把一個(gè)文件夾內(nèi)的圖片自動(dòng)生成一個(gè)圖集,如果文件過(guò)大,這個(gè)文件默認(rèn)不會(huì)打包到圖集,一般的圖片默認(rèn)是生成到圖集的,如果你想這個(gè)圖片不生成到圖集,可以指定這個(gè)圖片的類(lèi)型為不打包。圖集的使用能提升繪制性能,節(jié)約DrawCall。

問(wèn)題6: Laya 3D?攝像機(jī)有哪些模式?

Laya里面攝像機(jī)有兩種模式,一種是透視攝像機(jī),一種是正交攝像機(jī),這兩種攝像機(jī)決定了兩種不同的投影成像的方式。如下圖:


正交攝像機(jī)直接投影到屏幕成像


問(wèn)題7: Laya 3D?物體結(jié)果與U?nity?有什么區(qū)別?

Laya 的3D物體與Unity還是有區(qū)別的,Unity是GameObject + [Transform, MeshRender等組件], 而Laya里面是MeshSprite3D包含了MeshRenderer, 并且繼承自Sprite3D,Sprite3D里面包含了數(shù)據(jù)成員transform。所以和Unity的純組件開(kāi)發(fā)有一些不一樣。

問(wèn)題8: Laya.Scrip?與L?aya.Script3D?有什么區(qū)別?

Laya 里面有兩個(gè)代碼組件類(lèi),一個(gè)是Laya.Script, 一個(gè)是Laya.Script3D,這兩個(gè)有什么區(qū)別呢?記住一條,2D節(jié)點(diǎn)上只能掛Laya.Script, 3D節(jié)點(diǎn)上只能掛Laya.Script3D。

問(wèn)題9: Laya UI?里面如何換圖片?

Laya Image里面有個(gè)skin指向的是圖片的路徑的字符串,當(dāng)我們要換圖片的時(shí)候,只需要將Image的數(shù)據(jù)成員skin,設(shè)置為圖片的路徑,如果要加載網(wǎng)絡(luò)圖片,也只需要將skin設(shè)置成http的一個(gè)網(wǎng)絡(luò)地址。

問(wèn)題10: Laya?組件化開(kāi)發(fā)的固定入口?

Laya寫(xiě)腳本的代碼的時(shí)候是組件化開(kāi)發(fā),和Unity類(lèi)似,接口也和Unity相似,不過(guò)前面加了一個(gè)on, 如下:

onAwake:組件實(shí)例加載的時(shí)候調(diào)用。

onStart: 組件實(shí)例在第一次update之前調(diào)用

onUpdate: 組件實(shí)例在每次畫(huà)面刷新的時(shí)候調(diào)用

onFixedUpdate(): 組件實(shí)例以固定的時(shí)間間隔調(diào)用。

onDestroy(): 組件實(shí)例刪除的時(shí)候調(diào)用。

接口很多與Unity類(lèi)似,所以Unity開(kāi)發(fā)人員很快就能上手Laya。

問(wèn)題11: Laya?如何做第三方資源部署?

開(kāi)發(fā)微信抖音小游戲的時(shí)候,如果包體超過(guò)了大小我們需要把資源部署到第三方的服務(wù)器上,Laya為我們提供了第三方部署的方法,只需要設(shè)置資源的urlRoot就可以了。

問(wèn)題12: Lay?a?如何裁剪引擎的體積?

打開(kāi)游戲場(chǎng)景,按住F9, 彈出項(xiàng)目設(shè)置對(duì)話(huà)框。你可以對(duì)你用到的庫(kù)來(lái)進(jìn)行設(shè)置,不用的就不要勾選上這樣能減少游戲引擎的體積。如圖:


問(wèn)題13: Laya?如何播放粒子特效?

粒子特效的節(jié)點(diǎn)為L(zhǎng)aya. ShuriKenParticle3D,我們通過(guò)場(chǎng)景的節(jié)點(diǎn)查找函數(shù)獲取到粒子節(jié)點(diǎn),獲取粒子節(jié)點(diǎn)后,里面有個(gè)數(shù)據(jù)成員particleSystem就是粒子的播放的控制,我們只要調(diào)用: ((節(jié)點(diǎn) as Laya.ShuriKenParticle3D).particleSystem).play()。

問(wèn)題14: 3D?游戲里面如何監(jiān)聽(tīng)觸摸事件?

3D里面我們使用舞臺(tái)來(lái)進(jìn)行事件監(jiān)聽(tīng),Laya.stage.on(Laya.Event.MOUSE_DOWN, this, this.onTouchStart);Laya.stage.on(Laya.Event.MOUSE_UP, this, this.onTouchEnd);Laya.stage.on(Laya.Event.MOUSE_MOVE, this, this.onTouchMove);

問(wèn)題15:?微信小游戲如何監(jiān)聽(tīng)進(jìn)入后臺(tái)與回到游戲事件?

if (Laya.Browser.onWeiXin) { ? ? ?wx.onShow(this.onEnterFrount.bind(this)); ? ? ?wx.onHide(this.onEnterBackGround.bind(this)); }

問(wèn)題16: Laya?如何加載Unity?導(dǎo)出的3D?游戲場(chǎng)景?

Laya.Scene3D.load(“資源路徑”, Laya.Handler.create(this, function (scene3d) {// 加載完成的回調(diào)}));

問(wèn)題17: Laya?如何加載Unity*導(dǎo)出的預(yù)制體?

Laya.Sprite3D.load(“資源路徑”, Laya.Handler.create(this, function (sprite3d) {// 加載成功的回調(diào)}));

問(wèn)題18:?如何正確的使用U?nity?來(lái)輔助開(kāi)發(fā)Laya?項(xiàng)目?

Laya的3D編輯器是Unity, 這里要注意幾個(gè)問(wèn)題,而且非常重要。

1: 注意一定要使用laya for unity插件指定的Unity版本,這個(gè)真的很重要,很多問(wèn)題都有可能是它引起的,比如場(chǎng)景性能很差等。

2: 一定要按照l(shuí)aya的支持規(guī)范來(lái)使用相關(guān)的操作,比如Laya兼容組件,Laya兼容的Shader。

問(wèn)題19: Laya?如何切換材質(zhì)?

r = ("節(jié)點(diǎn)" as Laya.MeshSprite3D).meshRenderer; r.material = 材質(zhì)對(duì)象;

問(wèn)題20: Laya?如何播放背景音樂(lè)?

Laya.SoundManager.playMusic(soundPath, 次數(shù), Laya.Handler.create(this, this.onSoundPlayEnd));

問(wèn)題21: Laya?的項(xiàng)目目錄結(jié)構(gòu)有哪些?

bin: 存放運(yùn)行時(shí)候的代碼庫(kù),資源等,運(yùn)行時(shí)候的數(shù)據(jù)所在的目錄,非常重要。

laya: 2D UI 場(chǎng)景視圖,資源所在的文件夾,專(zhuān)門(mén)用來(lái)做2D編輯的。

libs: 游戲引擎所在的庫(kù)的目錄,當(dāng)前項(xiàng)目使用的Laya引擎代碼庫(kù)所在目錄。

release: 打包發(fā)布到各個(gè)平臺(tái)的發(fā)布路徑。

src: 代碼所在的路徑

laya文件: Laya工程項(xiàng)目文件。

tsconfig.json: ts代碼相關(guān)的一些設(shè)置。

問(wèn)題22: Laya?如何升級(jí)引擎?

這里有一個(gè)誤區(qū),大家都以為只要重新安裝了LayaAir的IDE,用新的IDE打開(kāi)了老的項(xiàng)目就已經(jīng)升級(jí)成功了引擎版本。其實(shí)并沒(méi)有升級(jí)引擎版本,還需要把新引擎的庫(kù)拷貝到項(xiàng)目,如菜單所示:文件-》項(xiàng)目-》類(lèi)庫(kù)管理, 選擇版本,點(diǎn)擊”應(yīng)用”即可


問(wèn)題23: Laya?如何正確的做資源管理和使用資源?

Laya資源加載都是基于異步的,如果是H5游戲,有些資源可能要從服務(wù)器下載下來(lái),再加載到內(nèi)存,所以這個(gè)”時(shí)間段”會(huì)導(dǎo)致黑屏(無(wú)內(nèi)容)與閃爍,所以使用Laya的資源的時(shí)候最好做好資源管理的預(yù)加載機(jī)制,你后面要使用什么資源先預(yù)加載進(jìn)來(lái),這樣就可以避免黑屏與內(nèi)容閃爍,避免由于資源加載照程的卡頓。

問(wèn)題24: Laya如何監(jiān)聽(tīng)物理碰撞?

Laya物理引擎的碰撞檢測(cè)其實(shí)非常簡(jiǎn)單,只需要在物理剛體所在的節(jié)點(diǎn)添加腳本,在腳本里面重載下面的接口即可檢測(cè)到物理碰撞


問(wèn)題25:Laya?物理引擎支持哪些碰撞器?

SphereColliderShape 球體碰撞器
BoxColliderShape 盒型碰撞器
CapsuleColliderShape膠囊碰撞器
CylinderColliderShape圓柱碰撞器
ConeColliderShape圓錐碰撞器
MeshColliderShape網(wǎng)格碰撞器

問(wèn)題26: Laya使用Unity導(dǎo)出天空盒要注意哪些事項(xiàng)?*

1:導(dǎo)出的天空盒cubeMap 需要勾選 Readable選項(xiàng)


2:導(dǎo)出的天空盒材質(zhì)必須使用LayaAir下的天空盒材質(zhì)


問(wèn)題27: Laya?拖尾的參數(shù)有哪些?

Time 拖尾生存時(shí)長(zhǎng)

minVertexDistance 最小拖尾片段距離

width 拖尾寬度設(shè)置(可以為寬度曲線(xiàn))

Color 采用 colorGradient 方式設(shè)置,有兩個(gè)可選模式

Fixed 固定模式

Blend 混合模式

texture Mode 紋理模式,與普通紋理模式相同。

Stretch 可沿著軌跡的整個(gè)長(zhǎng)度應(yīng)用紋理貼圖

Tile 使紋理沿著軌跡的長(zhǎng)度平鋪

alignment 軌跡準(zhǔn)線(xiàn)

ALIGNMENT_VIEW 可以使軌跡面向攝像機(jī)

ALIGNMENT_TRANSFORM_Z 根據(jù)軌跡的變換組件的方向?qū)R


問(wèn)題28: Laya如何使用靜態(tài)合批?

Laya使用靜態(tài)合批非常的簡(jiǎn)單,在Unity中對(duì)需要使用靜態(tài)合并的模型勾選 Static 靜態(tài)選項(xiàng)導(dǎo)出即可。如圖所示:


問(wèn)題29: Laya里面動(dòng)態(tài)合批的原則

Laya里面動(dòng)態(tài)合批,是自動(dòng)完成的不需要開(kāi)發(fā)人員做相關(guān)操作,動(dòng)態(tài)合批分為兩種,實(shí)例合并與頂點(diǎn)合并,他們的條件要求如下:

實(shí)例合并:

需要同Mesh和同材質(zhì)雙條件滿(mǎn)足。在三維場(chǎng)景中同Mesh同材質(zhì)的模型還是可能大量存在的,在這時(shí)實(shí)例合并有不小的發(fā)揮空間。

頂點(diǎn)合并:

需要同材質(zhì)且模型頂點(diǎn)小于10個(gè)。頂點(diǎn)合并目前在一些假陰影和特效模型上有發(fā)揮空間。

注意:半透明的物體需要連續(xù)渲染才能動(dòng)態(tài)合并,所以半透明物體的動(dòng)態(tài)合并幾率低。

問(wèn)題30: LayaIDE如何清理緩存?

開(kāi)發(fā)者在使用IDE的時(shí)候,有時(shí)候會(huì)報(bào)出一些錯(cuò)誤,有的時(shí)候直接忽略即可。有的時(shí)候,需要重啟IDE才可以解決。也有的時(shí)候重啟也解決不了。這個(gè)時(shí)候。我們建議開(kāi)發(fā)者先清理緩存來(lái)解決。因?yàn)榇蠖鄶?shù)情況都是緩存的問(wèn)題導(dǎo)致。

在IDE導(dǎo)航的幫助菜單里有一個(gè)選項(xiàng)叫“打開(kāi)編輯器本地緩存”,如圖所示。通過(guò)點(diǎn)擊這里,可跳轉(zhuǎn)到緩存的資源目錄。


緩存目錄打開(kāi)后,如圖2所示。如果是布局問(wèn)題,可以直接刪除layout目錄。如果也不清楚什么問(wèn)題。所有看到的目錄和文件都刪干凈也沒(méi)關(guān)系。


問(wèn)題31: Laya 3D物體顯示有鋸齒怎么辦?**

由于3D抗鋸齒默認(rèn)是開(kāi)啟的,但有的開(kāi)發(fā)者發(fā)現(xiàn)鋸齒感還是很明顯,如果是采用了2.2或更高版本的引擎,那就需要檢查是否使用了HDR和后期處理。

webGL 1.0不支持renderTarget有抗鋸齒,使用相機(jī)HDR和后期處理管線(xiàn)的BloomEffect泛光效果就會(huì)引起抗鋸齒無(wú)效。解決辦法就是不要使用這兩塊功能,后期處理一般來(lái)說(shuō),開(kāi)發(fā)者用的不多。

HDR是要特別注意的,在Unity里導(dǎo)出資源時(shí),不要勾選HDR相關(guān)選項(xiàng)。如果不小心勾了,不想重新導(dǎo)出的。也可以在項(xiàng)目代碼里強(qiáng)制HDR效果。示例代碼如下:

this.camera = new Laya.Camera(0, 0.1, 100);this.camera.enableHDR = false; //關(guān)閉HDR

問(wèn)題32: Laya如何可能一個(gè)3D物體?

我們經(jīng)常需要在游戲里面大量復(fù)制同一個(gè)物體,那么如何clone一個(gè)物體呢?Laya提供了接口來(lái)clone, Laya.Sprite3D.instantiate(物體)。

最后

今天的Laya面試習(xí)題就給大家分享到這里了,歡迎讀者朋友們?cè)谠u(píng)論區(qū)留言,今天的內(nèi)容到此結(jié)束!

當(dāng)然還有,今天的面試集錦大禮包已經(jīng)分享出來(lái)啦~ 有需要獲取的讀者朋友,歡迎來(lái)后臺(tái)私信阿博:面試?就可以獲取了哦

那么,下篇再會(huì),敬請(qǐng)期待!


2020,Laya最新中高級(jí)面試靈魂32問(wèn),你都知道嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
张家口市| 谷城县| 晋城| 依安县| 岳池县| 西昌市| 吉水县| 家居| 钟祥市| 澄城县| 铜山县| 桐庐县| 湘乡市| 泽普县| 和平县| 秦皇岛市| 延边| 公主岭市| 微山县| 绍兴市| 南通市| 贵德县| 焦作市| 宜宾市| 昭觉县| 木里| 织金县| 什邡市| 和硕县| 郧西县| 旬阳县| 开江县| 柏乡县| 东乡县| 郯城县| 平顶山市| 建湖县| 攀枝花市| 汪清县| 钟山县| 七台河市|