按鈕穿透點選實現方式

2021-09-11 10:46:35 字數 2757 閱讀 5460

uwa 問答社群:answer.uwa4d.com

uwa qq群2:793972859(原群已滿員)

本期目錄:

q:在按鈕重疊情況下,如何實現點上面的按鈕能同時讓下面的按鈕也執行?就是想讓我的觸控監聽能穿透下去不會停止,請問在ugui上要怎麼做?

a:我們是給需要做這種處理的控制項上掛了乙個指令碼來實現的,沒有修改eventsystem的原始碼。對應你的需求,可能要做乙個全屏的ui來專門檢測滑動時間。

using unityengine;

using system.collections;

using unityengine.eventsystems;

using unityengine.ui;

using system.collections.generic;

namespace kengine.ui

//把事件透下去

public void passevent(pointereventdata data, executeevents.eventfunctionfunction)

where t : ieventsystemhandler}}

}}

}

q:現在專案需要進行一些資源的清理,將一些不需要的mesh去掉。因而,需要獲取所有prefab中使用的mesh所在fbx中的路徑,然後fbx回建模軟體,將其中不再用到的mesh刪除。現在能通過名稱獲取prefab中的mesh所在的fbx,但如果fbx中存在同名mesh,如何確定用到的是哪個mesh呢?

a:無法直接通過名稱獲取mesh所在fbx中的路徑,但是可以通過對比找到其在fbx中具體是哪個mesh,然後再查詢路徑:

private static string getmeshpath(string modelpath, meshfilter prefabfilter) 

meshfilter modelfilter = null;

foreach (meshfilter filter in model.getcomponentsinchildren(true))

}if (!modelfilter)

transform transform = modelfilter.transform;

string path = transform.name;

while (transform.parent)

return path;

}

q:使用了il2cpp後是否還存在mono記憶體,使用il2cpp後,通過profiler工具獲取的manage object(例如: int32)是哪種記憶體?

a:可以簡單的認為,il2cpp 只是替換掉了mono的虛擬機器實現,所以該分配堆記憶體的地方還是會一樣的分配(可能會有某些細節的地方不一樣)。

il2cpp在堆記憶體分配方面和mono最大的不同主要是reserved total是可以下降的,而mono的reserved total只會上公升不會下降。

q:prefab包含了多個sub mesh,當在場景中初始化該prefab時,這些sub mesh進行了合併,怎麼避免它們合併?

a:取消勾選import settings裡面的「weld vertices「試試。該選項會自動合併位置相同的頂點,並且預設開啟。

q:看了一些ugui優化的文章,都提到text裡不要勾選best fit屬性。但是我在profiler裡的frame debugger裡沒有找到相關的text_onpopulatemesh消耗數值。是不是意味著當前ui裡勾選的best fit並沒有造成太大的效能消耗?或者說在哪能查到當前ui裡best fit相關的消耗?

ps:記憶體那塊也沒有看到相應的變化。

a:best fit主要功能是文字框內的字型大小會隨著文字框大小改變而自動適配,通常來說,會帶來兩個問題:

1.遊戲中的字型大小不統一,比如21、22、23、24都有可能,由於每個字型大小下新生成的字都會在對應的font texture上占用乙個字的大小,所以容易導致font texture記憶體占用過大;

2.執行過程中動態修改文字框大小導致的額外開銷,在某些專案中遇到過會對文字框大小進行動態調整(比如文字動畫),如果這類文字勾選了best fit,就會有乙個額外的cpu耗時。

font texture的尺寸會受字型種類、字型大小、文字內容多少影響,如果看到沒有發生變化可能是內容還沒有超過512*1024的範圍,或者看一下是否生成了另一張font texture?bestfit對這個的影響主要還是字型大小不統一,如果勾選了但字型大小沒有變化,也不會造成影響。

今天的分享就到這裡。當然,生有涯而知無涯。在漫漫的開發周期中,您看到的這些問題也許都只是冰山一角,我們早已在uwa問答**上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之「石」,也能攻你之「玉」。

官網:www.uwa4d.com

官方技術部落格:blog.uwa4d.com

官方問答社群:answer.uwa4d.com

官方技術qq群:793972859(原群已滿員)

vuex使用 實現點選按鈕進行加減

1 3 vuex配置4 56 import vue from vue 7 import vuex from vuex 89 vue.use vuex 1011 定義屬性 資料 12var state 1516 定義getters 17var getters 21isevenorodd state 2...

原生js實現點選按鈕複製文字

封裝函式引數 id 要複製的元素id,paramtype 複製的屬性內容,一般是innertext copywxid id,paramtype else else try catch e if paramtype 原理總結 1.先建立全透明div,並把要複製的內容放入其innertext 2.建立r...

原生 js 實現點選按鈕複製文字

最近遇到乙個需求,需要點選按鈕,複製 標籤中的文字到剪下板 之前做過複製輸入框的內容,原以為差不多,結果發現根本行不通 嘗試了各種辦法,最後使了個障眼法,實現了下面的效果 一 原理分析 瀏覽器提供了 copy 命令 可以複製選中的內容 document.execcommand copy 如果是輸入框...