unity-find-fault
Version:
A tool to find fault in unity project.
55 lines • 2.21 kB
JavaScript
import fg from "fast-glob";
import fs from "fs-extra";
import path from "path";
import { UnityHelper } from "./UnityHelper.js";
import { PrefabSearcher } from "./PrefabSearcher.js";
import { toolchain } from "../toolchain.js";
export class UsingLegacy {
async lookUp() {
if (toolchain.opts.input == null) {
console.error('no input specified!');
process.exit(1);
}
const legacyRoot = path.join(toolchain.opts.projectRoot, toolchain.opts.input);
const imgs = await fg(['**/*.png', '**/*.jpg'], { cwd: legacyRoot });
const legacyGUIDs = [];
const guidImgMap = {};
for (const img of imgs) {
const file = path.join(legacyRoot, img);
const guid = await UnityHelper.readGUID(file + '.meta');
legacyGUIDs.push(guid);
guidImgMap[guid] = img;
}
let out = '';
const uiRoot = path.join(toolchain.opts.projectRoot, 'Assets/AssetSources/ui');
const prefabs = await fg('**/*.prefab', { cwd: uiRoot });
for (const p of prefabs) {
const file = path.join(uiRoot, p);
const searcher = new PrefabSearcher();
const usages = await searcher.findImageUsages(file, legacyGUIDs);
if (usages.length > 0) {
out += p + '\n';
for (const u of usages) {
console.warn(p, u.path, guidImgMap[u.image]);
out += u.path + ' ' + guidImgMap[u.image] + '\n';
}
out += '-----------\n';
}
// const content = await fs.readFile(file, 'utf-8');
// const us: string[] = [];
// for (const g of legacyGUIDs) {
// if (content.includes(g)) {
// console.warn(p, guidImgMap[g], g);
// us.push(guidImgMap[g]);
// }
// }
// if (us.length > 0) {
// out += p;
// out += us.join('\n');
// out += '-----------\n'
// }
}
await fs.writeFile(toolchain.opts.output, out, 'utf-8');
}
}
//# sourceMappingURL=UsingLegacy.js.map