一 没有自定义组件
教程翻了几遍,没有自定义组件,论坛搜了下,说是不能使用。
二 预置件不能做自定义组件
预置件无法右键创建。
又去翻教程。终于知道预置件怎么创建了。就是选中一个组件,然后右上角有个按钮,设置为预置件。
选择了分离模式导出,但是预置件代码不能像scene一样生成在layaMaxUI.ts中,然后去继承。
仿照laya的demo中dropbox预置件的写法。来回在代码和编辑模式切换,查看组件的名字,然后用getChildByName获取。比较麻烦。
现在有预置件LevelFlag.prefab和LevelFlag.ts,但是将预置件放在场景中,命名flag,获取这个预置件是类型Node。
下面这行代码报错,Node无法转成LevelFlag。
let flag:LevelFlag = this.getChildByName("flag") as LevelFlag;
三 使用Scene做自定义组件
现在只能用Scene做自定义组件。比如我现在要创建10个关卡图标自定义组件LevelFlag
1. 创建一个scene命名为LevelFlag.scene
2. LevelFlag.scene绑定runtime为逻辑类LevelFlag.ts
3. 拖动这个LevelFlag.scene到其他scene中使用,命名为flag
4. 在LayaMaxUI.ts里获得这个组件类型是flag:any, -_-!, 代码里要自己转换一下 flag as LevelFlag使用