如何通過Timeline的形式實現技能編輯器

2022-06-07 12:51:14 字數 3234 閱讀 8961

1)如何通過timeline的形式實現技能編輯器

​2)addressable如何通過group name獲得group下的key

3)unity如何獲取sprite在sprite packer中的uv值

4)animatorcontroller在unityeditor下,如何獲取所有的狀態名

5)unity為ugui的mask做了怎樣的處理

uwa 問答社群:answer.uwa4d.com

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

a1:建議學習timeline的使用方法以及傳統技能編輯器是怎麼做的,然後再想想看如何結合。下面這篇文章可以先讀一讀: 《act技能編輯器的製作經驗分享》

該問答由uwa提供感謝羽飛@uwa問答社群提供了回答

a3:第一,時間軸的形式是怎麼實現的?

你可以參考幾個unity 的外掛程式:

推薦slate,擴充套件起來比較方便:

舉個特效的例子:

技能特效不外乎幾個引數:特效名、偏移資訊和掛接點等等;

然後需要去實現執行到這個關鍵幀的時候具體怎麼執行的業務**,比如根據幀上面的配置的特效名引數載入出這個特效,偏移資訊和掛接點引數設定特效的transform;

幀的長度就是這個特效的生命週期,幀執行完退出時做下銷毀工作。

感謝波波@uwa問答社群提供了回答q:addressable可以通過group name獲得這個group下的key嗎?

a1:有乙個內部函式:

internal

bool getresourcelocations(object key, type type, out ilistlocations)

可以參考一下具體實現,這也是類似getdownloadsizeasync這樣的函式在內部呼叫的。

至於資源丟失問題資訊不夠不太好判斷了。

感謝黃程@uwa問答社群提供了回答

a2:可以把startgroup裡的資源的label都設定成了「start」,通過lable可以拿到location列表,然後把這個列表中的key值從總列表裡面排除:

public

static list getallkeys(string

labelname)

}if (ishas) continue

;

string key =info.key.tostring();

if (int.tryparse(key, out

varnum))

if (!keys.contains(key))}}

/*foreach (var locator in t)}}

*/return

keys;

}

感謝大俠陳二狗@uwa問答社群提供了回答q:使用了sprite packer的打圖集,如何在執行時候獲取sprite在所在圖集中的uv值?

a:可以使用以下方式:

sprites.datautility.getouteruv(activesprite)

感謝題主凡凡@uwa問答社群提供了回答q:animatorcontroller被放在unityeditor下了,該怎麼獲取所有的狀態名?

a:可以參考一下:

另外,animatorcontroller從unity5.2開始就一直是editor命名空間下的。

感謝xuan@uwa問答社群提供了回答q:由於某些原因,我把ugui的mask元件反編譯了,然後把**複製乙份改個名字進行測試使用。然後發現,複製出來的mask竟然不生效。原生的mask通過修改元件上的材質,實現裁剪,它會修改自己跟所有子節點的材質;而複製出來的這個mask,只會修改自己的材質,完全不會影響子節點。

a1:mask元件只是乙個通知元件和標識裁切資訊的類,在元件開啟後通知子節點中所有的text,image(這些元件繼承自maskablegraphic)開始裁切計算,maskablegraphic會去找父節點中離它最近的mask元件獲取裁剪資訊,單純複製乙個mask沒有用。

感謝陳祥@uwa問答社群提供了回答

a2:根據maskablegraphic的**,裡面只有找當前節點的mask元件,並沒有尋找父節點。寫了個alphamask元件做軟裁剪,發現如果父節點掛了mask後,這個元件會不正常。經查發現是mask替換了材質,把原有材質裡的資訊搞丟了。

然後參考mask的實現調整一下alphamask。主要是替換子節點材質這部分,因為在專案中有很多動態節點,現在需要讓每個動態節點自己呼叫**替換材質。

最終發覺,maskabelgraphic是通過呼叫maskutilities.getstencildepth拿到父節點mask的資訊的,沒用直接getcomponentinparent。

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

官網:www.uwa4d.com

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

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

uwa學堂:edu.uwa4d.com

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

Timeline形式API簡述

timeline英文原版文件 twitter 問題起因 假設有10條微博,每頁5條,正常情況下兩頁完成瀏覽。然而,微博內容不斷更新的情況下,當你看完第一頁內容時,更新了兩條內容11和12。此時,當你翻到第二頁時,看到的就會是第三到第七條內容。如果更新的內容超過五條,將會出現非常尷尬的情況。解決方法 ...

echarts中如何使用timeline元件

1.吃碗麵 這裡關於echarts3 官網的示例我不得不吐槽一下,逼格真高 一小部分示例動不動資料就是國家統計局搞出來的,你臉真大。當然他們做的示例的確是很好,這一點毫無疑問。當我看了echarts3關於timeline的使用,我就覺得我有必要寫一篇echarts中timeline元件的使用。這玩意...

通過陣列的形式傳遞引數

用到陣列的形式傳遞引數的一般都是批量新增,批量刪除 還有就是批量判斷條件 首先宣告個全域性變數陣列 如下圖然後宣告乙個建構函式 如下圖 建構函式的作用主要是建立字段接收資料 因為最終靠字段的對應來傳遞資料 所以建構函式的建立是必需的 之後迴圈遍歷你需要傳遞的批量內容存入建構函式的字段中再記錄到陣列中...