參考:
版本:Laya2.5.0
一 預設組件是什么
預設組件相當於自定義組件,比如你自定義一個圖片輪播組件,然后可以拖動這個輪播組件到多個頁面去重復使用。
和頁面嵌套(scene、view等)做的自定義組件區別就是預設可以單獨修改。
比如你的圖片輪播有上一頁和下一頁按鈕,5個預設可以設置每個按鈕不用顏色。而頁面嵌套則是修改了一個,所有用到這個頁面的地方都會修改。
二 如何創建預設
我在HomeScene.scene下拼湊了一個輪播圖片組件,選擇它的容器Sprite,然后右上角選擇保存預設
可以看到Scenes/prefab下新增加了PicureUI.prefab預設文件。這樣預設文件就創建完畢了,你可以直接拖動這個預設文件到其它頁面使用。
三 預設可以單獨設置的特性
下面創建2個圖片輪播預設,每個按鈕不同顏色。
拖動兩個PictureUI.prefab到舞台,點擊第一個預設的按鈕,更換按鈕的skin。
可以看到第一個預設按鈕變了skin后,第二個預設按鈕的skin還是保持原來的。
假如是scene或者view制作的組件,你修改第一個按鈕,第二個按鈕也會跟着變。
修改源預設文件,所有預設文件會同時改變。 選擇PictureUI.prefab預設文件,改變第一個按鈕的skin。
可以看到第一個組件的按鈕skin沒有跟着源預設文件改變,因為第一個預設的按鈕已經被單獨修改過,不跟隨源預設文件改變。
第二個預設按鈕skin跟着源預設文件改變。
六 怎么給預制件加上代碼
創建圖片輪播的代碼,圖片輪播功能有開始播放、停止播放、上一頁、下一頁
lastBtn和nextBtn是設置的PictureUI.prefab上一頁和下一頁按鈕的名稱。注意是name,不是var。
在代碼里通過this.owner.getChildByName獲取預設上的UI組件。
選擇預制件Scenes/prefab/PictureUI.prefab,選擇屬性面板右下角的添加組件,選擇code/PictureUI,則會將圖片輪播的代碼邏輯以組件形式掛到prefab上。
代碼會在預制件顯示時自動執行。
我們拖動一個圖片輪播prefab到主頁場景,開始運行,並點擊上一頁按鈕
七 如何在代碼中創建預設
上面我們是直接拖動預制件到場景上使用,那么怎么在代碼里使用預制件。
在HomeScene設置預設屬性pictureUI。
在主頁HomeScene.scene上添加HomeScene.ts代碼組件,並拖動Scenes/prefab/PictureUI.prefab賦值到屬性pictureUI上
通過Laya.Pool創建了一個圖片輪播預設,獲取預設上的PictureUI.ts代碼,調用play函數。
運行游戲。在顯示HomeScene主頁場景時,Laya.Pool通過綁定在場景上的pictureUI.prefab創建一個圖片輪播實例,並使用getComponent獲取圖片輪播代碼,執行play播放操作。
其他:
1. 切斷預設
選擇第一個組件,右鍵選擇切斷預設
切斷預設后,預設組件恢復成為了普通組件,不再金色高亮顯示了
2. 銷毀預制件
調用其destroy方法,即可從舞台移除預制件,並刪除其引用關系