1.分析GUID定位的脚本在.meta文件中,所以快速查找定位缺失的脚本代码
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class findAllScript {
public static void main(String[] args) throws IOException {
String infile="G:\\AssetRipper_win_x64\\data\\ExportedProject\\Assets\\_Game\\Scenes\\scene_debug.unity";
String inpath="G:\\AssetRipper_win_x64\\data\\ExportedProject\\Assets";
List<String> result = GetFileAllScript(infile);
List<String> allfile = FileOption.GetFiles(inpath,false);
for (String s: result){
for (String pathFile :allfile){
if(pathFile.contains(".meta")&&(pathFile.contains(".cs") ||pathFile.contains(".dll") )){
List<String> guiALl = GetFileAllGUIID(pathFile);
if(guiALl.contains(s)){
System.out.println(pathFile+"\t"+s);
}
}
}
}
}
static List<String> GetFileAllScript(String s) throws IOException {
Vector<String> data = FileOption.readVetKeyData(s);
List<String> result= new ArrayList<>();
for (String da:data ){
if(da.contains("m_Script")){
String t = GetGUIID(da);
if(t!=""){
result.add(t);
}
}
}
return result;
}
static List<String> GetFileAllGUIID(String s) throws IOException {
Vector<String> data = FileOption.readVetKeyData(s);
List<String> result= new ArrayList<>();
for (String da:data ){
if(!da.contains("m_Script")){
String t = GetGUIID(da);
if(t!=""){
result.add(t);
}
}
}
return result;
}
public static String GetGUIID(String s){
Pattern pattern = Pattern.compile("(guid: )([0-9a-fA-F]+)");
Matcher matcher = pattern.matcher(s);
String re = "";
if(matcher.find()){
re = matcher.group(2);
}
return re;
}
}