123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Text;
- using UnityEditor;
- using UnityEngine;
- using vietlabs.fr2;
- public class FR2_CSV
- {
- private const string SEPARATOR = ",";
- public static string GetCSVRow(FR2_Ref r, params string[] suffixes)
- {
- var asset = r.asset;
- var sr = r.isSceneRef ? (FR2_SceneRef) r : null;
- var go = (GameObject)null;
-
- if (sr != null)
- {
- if (sr.component is Component)
- {
- go = ((Component) sr.component).gameObject;
- }
- if (sr.component is GameObject)
- {
- go = (GameObject)sr.component;
- }
- }
-
- var sb = new StringBuilder();
-
- sb.Append(r.depth);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? sr.component.name : asset.assetName);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? FR2_SceneRef.FindUsageScene(new []{go}, false).Count : asset.UsageCount());
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? string.Empty : asset.extension);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? "0" : asset.fileSize.ToString());
- sb.Append(SEPARATOR);
-
- var type = r.isSceneRef ? "SceneObject": "(missing)";
- if (!r.isSceneRef)
- {
- var obj = AssetDatabase.GetMainAssetTypeAtPath(asset.assetPath);
- if (obj != null) type = obj.ToString();
-
- if (type.StartsWith("UnityEngine.") || type.StartsWith("UnityEditor."))
- {
- var idx = type.LastIndexOf(".", StringComparison.Ordinal) + 1;
- type = type.Substring(idx, type.Length-idx);
- }
- }
-
- sb.Append(type);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? string.Empty : asset.guid);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? string.Empty : asset.AtlasName);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? string.Empty : asset.AssetBundleName);
- sb.Append(SEPARATOR);
-
- sb.Append(r.group);
- sb.Append(SEPARATOR);
-
- sb.Append(r.isSceneRef ? sr.sceneFullPath : asset.assetPath);
-
- foreach (var t in suffixes)
- {
- sb.Append(SEPARATOR);
- sb.Append(t);
- }
-
- return sb.ToString();
- }
- public static string GetCSVTitle()
- {
- var sb = new StringBuilder();
-
- sb.Append("depth");
- sb.Append(SEPARATOR);
-
- sb.Append("name");
- sb.Append(SEPARATOR);
-
- sb.Append("usage count");
- sb.Append(SEPARATOR);
-
- sb.Append("extension");
- sb.Append(SEPARATOR);
-
- sb.Append("size");
- sb.Append(SEPARATOR);
-
- sb.Append("type");
- sb.Append(SEPARATOR);
-
- sb.Append("guid");
- sb.Append(SEPARATOR);
-
- sb.Append("atlas");
- sb.Append(SEPARATOR);
-
- sb.Append("assetbundle");
- sb.Append(SEPARATOR);
-
- sb.Append("group");
- sb.Append(SEPARATOR);
-
- sb.Append("full path");
-
- return sb.ToString();
- }
- public static string GetCSVRows(FR2_Ref[] source)
- {
- if (source == null)
- {
- //Debug.LogWarning("source should not be null!");
- return string.Empty;
- }
-
- var sb = new StringBuilder();
- sb.AppendLine(GetCSVTitle());
- foreach (var s in source)
- {
- if (s == null) continue;
- sb.AppendLine(GetCSVRow(s));
- }
- return sb.ToString();
- }
- }
|