104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# EditorExtension ReferenceFinder 引用分析模块手册
|
|
|
|
## 模块概述
|
|
`ReferenceFinder` 用于分析项目资源的依赖与反向引用关系,支持缓存、树状展示和排序。
|
|
|
|
## 适用场景
|
|
- 查询资源被谁引用。
|
|
- 清理无用资源前做依赖确认。
|
|
- 排查深层依赖链和循环引用风险。
|
|
|
|
## 快速上手
|
|
```csharp
|
|
using TEngine.Editor;
|
|
|
|
ResourceReferenceInfo.FindRef();
|
|
```
|
|
|
|
## 模块结构
|
|
- `ResourceReferenceInfo`:入口与界面层。
|
|
- `ReferenceFinderData`:采集、缓存、状态管理。
|
|
- `AssetTreeView`:树状显示。
|
|
- `SortHelper`:排序逻辑。
|
|
|
|
## 可调用 API
|
|
### 类型:`TEngine.Editor.ReferenceFinderData`
|
|
源码:`Packages/com.alicizax.unity.editor.extension/Editor/ReferenceFinder/ReferenceFinderData.cs`
|
|
|
|
#### 公开成员
|
|
- `AssetState`
|
|
- `MinThreadCount`
|
|
- `allAssets`
|
|
- `assetDict`
|
|
- `CollectDependenciesInfo()`
|
|
- `ReadAssetInfo()`
|
|
- `GetAsset(string dataPath, string assetPath)`
|
|
- `ReadFromCache()`
|
|
- `UpdateAssetState(string guid)`
|
|
- `GetInfoByState(AssetState state)`
|
|
- `ClearCache()`
|
|
- `GetRefCount(AssetDescription desc, AssetDescription parentDesc)`
|
|
|
|
#### `AssetDescription` 字段
|
|
- `assetDependencyHashString`
|
|
- `dependencies`
|
|
- `name`
|
|
- `path`
|
|
- `references`
|
|
- `state`
|
|
|
|
### 类型:`TEngine.Editor.ResourceReferenceInfo`
|
|
源码:`Packages/com.alicizax.unity.editor.extension/Editor/ReferenceFinder/ResourceReferenceInfo.cs`
|
|
|
|
#### 公开成员
|
|
- `Data`
|
|
- `needUpdateAssetTree`
|
|
- `needUpdateState`
|
|
- `selectedAssetGuid`
|
|
- `mAssetTreeView`
|
|
- `FindRef()`
|
|
- `DrawOptionBar()`
|
|
|
|
### 类型:`AssetTreeView`
|
|
- `AssetTreeView(TreeViewState state, MultiColumnHeader multicolumnHeader)`
|
|
- `SortExpandItem()`
|
|
- `CreateDefaultMultiColumnHeaderState(float treeViewWidth, bool isDepend)`
|
|
|
|
### 类型:`ClickColumn`
|
|
- `SortInColumn`
|
|
- `SortWithIndex`
|
|
- `ClickColumn(MultiColumnHeaderState state)`
|
|
- `SortByName()`
|
|
- `SortByPath()`
|
|
|
|
### 类型:`DragAreaGetObject`
|
|
- `GetObjects(string meg = null)`
|
|
|
|
### 类型:`SortHelper`
|
|
- `Init()`
|
|
- `ChangeSortType(...)`
|
|
- `SortByName()`
|
|
- `SortByPath()`
|
|
- `SortChild(...)`
|
|
- `NormalSort(...)`
|
|
- `FastSort(...)`
|
|
- `CompareWithName(...)`
|
|
- `CompareWithNameDesc(...)`
|
|
- `CompareWithPath(...)`
|
|
- `CompareWithPathDesc(...)`
|
|
|
|
### 其他公开类型
|
|
- `ListInfo`
|
|
- `SortType`
|
|
- `SortConfig`
|
|
|
|
## 示例
|
|
```csharp
|
|
var data = new TEngine.Editor.ReferenceFinderData();
|
|
data.CollectDependenciesInfo();
|
|
```
|
|
|
|
## 注意事项
|
|
- 大项目建议优先使用缓存。
|
|
- 资源大规模变更后建议先清缓存再重新采集。
|