【1】图片加载
动态加载失败 bundle.load第二参数type指定后无法加载
【2】字体
加载失败(解决:字体文件名不能有空格)
字体文件后缀用小写 否则会出现引用移除
【3】按钮
编辑器上运行按钮响应区域问题(清理编辑器缓存)
【4】碰撞
适配缩放过后hitTest有问题(解决:使用uiTransfrom.getComputeAABB计算)
/**
* 碰撞检测
* @param pos 世界坐标(如:点击事件e.getUILocation())
*/
public hitTestToWorld(pos:Vec3){
let aabb = this.uiTransform.getComputeAABB();
let left = aabb.center.x - aabb.halfExtents.x;
let right = aabb.center.x + aabb.halfExtents.x;
let top = aabb.center.y - aabb.halfExtents.y;
let bottom = aabb.center.y + aabb.halfExtents.y;
return pos.x > left && pos.x < right && pos.y < bottom && pos.y > top;
}
【5】文本
实际运行文本字不清楚(解决:字号*2,缩放0.5)
【6】计时器回调
页面销毁后setTimeout调用问题优化,使用this.scheduleOnce
【7】节点Node注意事项
node.active为false时, schedule会暂停,当active恢复到true会继续延迟计划
node.active为false时, destroy不会触发onDestroy (特别注意)
节点布局用Layout组件代替Widget嵌套
instantiate创建node时如果绑定了自定义脚本需要加@ccclass,否则会返回脚本原实例
【8】动画Animation
Animation组件在节点未激活是修改动画状态会失败(使用时注意onEnable后刷新动画状态)
这里,你要稍微说清楚点,只有一开始就是false,才不会触发,因为生命周期函数全没有执行,没有onLoad,有onDestory会奇怪。但如果执行了onLoad,这个时候在隐藏,destroy也会触发onDestroy