某个资源,比如脚本,如何搜索它在哪个节点上使用的呢?

当前我们的项目,节点非常多,搜索很麻烦。
移交的时候,看到脚本,但是不知道脚本挂载的地方是哪儿。
creator上可以右键搜索,但是只能搜索到场景,好像无法确定节点。

目前没有这项功能,但是有个比较笨的方法,就是你们可以为每一个脚本的properties对象上加一个组件名,这样只要他被添加到节点上了都会出现在场景文件上,建议把脚本文件放在节点Node属性下的第一位,然后搜索的时候找下组件名,就能对应找到节点名,然后在层级管理器上找到它。

{
    "__type__": "cc.Node",
    "_name": "New Node",  //节点名
    "_objFlags": 0,
    "_parent": {
      "__id__": 2
    },
    "_children": [],
    "_tag": -1,
    "_active": true,
    "_components": [
      {
        "__id__": 12
      }
    ],
    "_prefab": null,
    "_id": "85ZeJERNNJv4YDshHUcytE",
    "_opacity": 255,
    "_color": {
      "__type__": "cc.Color",
      "r": 255,
      "g": 255,
      "b": 255,
      "a": 255
    },
    "_cascadeOpacityEnabled": true,
    "_anchorPoint": {
      "__type__": "cc.Vec2",
      "x": 0.5,
      "y": 0.5
    },
    "_contentSize": {
      "__type__": "cc.Size",
      "width": 0,
      "height": 0
    },
    "_rotationX": 0,
    "_rotationY": 0,
    "_scaleX": 1,
    "_scaleY": 1,
    "_position": {
      "__type__": "cc.Vec2",
      "x": 0,
      "y": 0
    },
    "_skewX": 0,
    "_skewY": 0,
    "_localZOrder": 0,
    "_globalZOrder": 0,
    "_opacityModifyRGB": false,
    "groupIndex": 0
  },
  {
    "__type__": "0e1bdxCH4BGcL7D8arxyAOF",
    "_name": "",
    "_objFlags": 0,
    "node": {
      "__id__": 11
    },
    "_enabled": true,
    "_componentName": "test"  //组件名
  },

找到该组件uuid对应的 __type__属性,然后在代码编辑器中搜该 type

我试了一下,我搜索了一个脚本内的属性,然后通过该属性找到的 .fire文件内找到这个属性名字,然后一直往上排查,一个个看nodename,最后找到了。。。。
这方法也真的是没办法了吧

还有就是脚本属性里挂载了一个节点【该节点可能跟其他节点重名】,我点击这个属性,并不能在左侧的树上自动选中。我觉得这个也很重要的功能。如果可以,最好也做一下吧。

当前的layout在很多场合不太好用,因为当前节点的层级是通过zindex来确定的,layout的排序居然也是这样确定,这样在一些需要排序方向和层级方向不同的时候不能用了。

搜索属性的话,不太方便,因为看到的是代码。通过代码里属性来搜索是可行的。

我们这边从规范上解决这个问题, 脚本组件只允许挂载在场景根节点或者预制根节点上.

我是在要找的脚本上输出log信息,内容是节点名字和父节点名字,可以循环输出到根节点为止,找到之后再删掉log。算是比较笨的方法了吧

场景文件时什么意思啊,层级管理器吗

我之前的回复不是最好的方案,在编辑器中的层级管理器搜索框中输入 t: + 你的组件名,就可以找到节点树中所有使用该组件的节点。
另外在资源管理器中,右键脚本,点击“查找使用”,也可以找到所有使用了该脚本的场景了预制体。

1赞