-
Creator 版本:1.8.0
-
目标平台:模拟器
如题,挂载了Spine组件的Node,Size为0,Anchor不可改,无法响应在节点上注册的事件
具体代码
原诉求为通过写功能组件方便策划人员完成内容生产,其中在挂载了Spine组件的节点下加入插件
但是应该是由于Node的Size为0,所以注册在Node上的Mouse事件没有被触发
ClickPlayAnim代码如下
Creator 版本:1.8.0
目标平台:模拟器
如题,挂载了Spine组件的Node,Size为0,Anchor不可改,无法响应在节点上注册的事件
具体代码
原诉求为通过写功能组件方便策划人员完成内容生产,其中在挂载了Spine组件的节点下加入插件
但是应该是由于Node的Size为0,所以注册在Node上的Mouse事件没有被触发
ClickPlayAnim代码如下
目前确实是这样,Spine 的 bounding box 需要遍历所有子骨骼才能获取,这个损耗比较高,在没有决定使用何种方式之前没有在事件处理中自动获取,暂时可以使用下面的代码
cc.find('Canvas').on(event_type, function (event) {
let boundingbox = skeletonComp._sgNode.getBoundingBox();
let pos = event.getLocation();
// check pos in bounding box
...
});
更简单的方法是,在 Spine 节点上模拟一个空白 rect 节点,作为点击区域,虽然是静态的,只要 spine 动画不太复杂,在一些情况下是可以满足需求的。
嗯,谢谢你,目前我采用的也是加空白Rect,将spine上的节点作为body挂在Rect子节点下。
但是后期可能还是会有使用BoundingBox的需求,是否可以通过当前spine获取到当前的spine的最外框?