如题,写了个扩展,定位层级管理器中的某个节点,并高亮闪烁显示,需要怎么写?
console打印{asset(db://xxxx)},然后点击console中的打印结果定位到资源管理器中的具体资源,那层级管理器需要怎么打印?
如题,写了个扩展,定位层级管理器中的某个节点,并高亮闪烁显示,需要怎么写?
console打印{asset(db://xxxx)},然后点击console中的打印结果定位到资源管理器中的具体资源,那层级管理器需要怎么打印?
你可以使用节点的 addComponent 方法来添加一个脚本组件,然后在该脚本中实现节点高亮闪烁的效果。
以下是一个示例代码,你可以将其添加到扩展中的某个地方:
// 扩展中定位到的节点
let node = Editor.Selection.curSelection('node')[0];
// 添加高亮闪烁组件
let hlComponent = node.addComponent(cc.Animation);
let clip = cc.AnimationClip.createWithSpriteFrames([ /* 高亮动画的 SpriteFrame 数组 */ ]);
hlComponent.addClip(clip, 'highlight');
// 定义高亮闪烁的动画
let fadeIn = cc.fadeIn(0.2);
let fadeOut = cc.fadeOut(0.2);
let seq = cc.sequence(fadeOut, fadeIn);
let action = cc.repeatForever(seq);
clip.wrapMode = cc.WrapMode.Normal;
clip.duration = 0.4;
clip.addCurve({
relative: true,
values: [0, 1, 0],
propertyName: 'opacity'
});
clip.addCurve({
relative: true,
values: [0, 1, 0],
propertyName: 'scale',
scaleRatio: 0.1 // 控制缩放范围
});
clip.addCurve({
values: [action],
propertyName: 'runAction'
});
// 播放高亮动画
hlComponent.play('highlight');
上述代码中,我们首先使用 Editor.Selection.curSelection('node') 获取当前选中的节点,并将其赋值给 node 变量。接着,我们使用 addComponent 方法给节点添加了一个 cc.Animation 组件,用于播放高亮闪烁动画。
在添加组件后,我们创建了一个 cc.AnimationClip 对象,并使用 addClip 方法将其添加到了 cc.Animation 组件中。接着,我们定义了一个 cc.Sequence 对象,用于将节点的透明度和缩放大小分别闪烁,然后创建了一个 cc.AnimationCurve 对象,将这个 cc.Sequence 对象作为节点动画的一个属性。
最后,我们使用 play 方法播放节点的高亮动画。此时,选中的节点就会以高亮闪烁的方式在层级管理器中显示了。
非常感谢你的回复,但是我的需求是层级管理器中高亮显示,如下图中的样式

别听 AI 瞎扯。。。现在应该不支持节点树上的高亮功能
你好,你需要的是否是传入 node path 触发闪烁? console.log('{node(path)}')
右击菜单底部有输出 PATH
但目前这个 PATH 是给场景使用的,可在场景进程的 devTool 控制台测试,cc.find(path)
需要的话,我们可以在后续版本支持上去 console.log('{node(path)}') 格式
这样甚好,但同时也有个问题,就是同名的情况,即两个节点同名,path也相同,需要怎样区分?