Gizmo的visible和layer方法存在问题

https://docs.cocos.com/creator/manual/zh/extension/api/editor-framework/renderer/gizmo.html#editorgizmoprototypevisible
根据这个文档描述,自定义Gizmo重载visible()返回true可以让 Gizmo始终显示,实际测试并不是这样。

  1. visible()始终返回true时,跟没有重载效果一样,即选中了节点才显示Gizmo,不符合预期
  2. visible()始终返回false时,Gizmo永远不显示,符合预期

这是一个bug吗?
如何让Gizmo始终显示?

  • Creator 版本:
    v2.2.2

  • 操作系统:Mac

  • 目标平台: Web

  • 出现概率:始终出现

https://docs.cocos.com/creator/manual/zh/extension/api/editor-framework/renderer/gizmo.html#editorgizmoprototypelayer

layer()方法也有问题,layer()返回’background’还是会挡住节点,如图紫色的线是gizmo,白色的是节点。

layer这个我也感到有点奇怪,不知道官方的碰撞组件是怎么写的,怎么写都会遮住节点,导致触摸被gizmo捕获了,移动没法正常移动

解决了,原来不想影响节点的移动,必须.style(‘pointer-events’, ‘stroke’)

感谢大佬分享。怎么把点击的坐标转换到节点上。官方的例子有问题。

getPointInNode(node, pointInSVG) {
    pointInSVG.y = this._view.offsetHeight - pointInSVG.y;
    let pointInWorld = this.pixelToWorld(pointInSVG);
    let pointInNode = node.convertToNodeSpaceAR(pointInWorld);
    return Editor.GizmosUtils.snapPixelWihVec2(pointInNode);
}

这个你试试

可以用,感谢大佬

2.4.3 设置visible也不行,Editor.Gizmo这个我设置visible一直为true了,但是点另一个节点的时候,当前节点绘制的消失了

visible的问题有解决方法吗?