public static void StartWatch(object obj) { #if COBJECT_DEBUGGER if (!CDebug.IsEditor || !Application.isPlaying || IsApplicationQuited) { return; } CAsync.AddMainThreadCall(() => { try { var newDebugger = new GameObject(string.Format("{0}-{1}", obj.ToString(), obj.GetType())).AddComponent <CObjectDebugger>(); newDebugger.WatchObject = obj; CDebuggerObjectTool.SetParent(ContainerName, obj.GetType().Name, newDebugger.gameObject); Cache[obj] = newDebugger; } catch (Exception e) { CDebug.LogError(e.Message); } }); #endif }
public float FinishUsedTime; // 参考,完成所需时间 public static CResourceLoaderDebugger Create(string type, string url, CBaseResourceLoader loader) { const string bigType = "ResourceLoaders"; Func <string> getName = () => string.Format("{0}-{1}-{2}", type, loader.Desc, url); var newHelpGameObject = new GameObject(getName()); CDebuggerObjectTool.SetParent(bigType, type, newHelpGameObject); var newHelp = newHelpGameObject.AddComponent <CResourceLoaderDebugger>(); newHelp.TheLoader = loader; loader.SetDescEvent += (newDesc) => { if (loader.RefCount > 0) { newHelpGameObject.name = getName(); } }; loader.DisposeEvent += () => { CDebuggerObjectTool.RemoveFromParent(bigType, type, newHelpGameObject); }; return(newHelp); }
// 可供调试删资源 void OnDestroy() { if (!IsRemoveFromParent) { CDebuggerObjectTool.RemoveFromParent(bigType, Type, gameObject); IsRemoveFromParent = true; } }
void Update() { if (TheObject == null && !IsRemoveFromParent) { CDebuggerObjectTool.RemoveFromParent(bigType, Type, gameObject); IsRemoveFromParent = true; } }
public static CResourceLoadObjectDebugger Create(string type, string url, UnityEngine.Object theObject) { var newHelpGameObject = new GameObject(string.Format("LoadedObject-{0}-{1}", type, url)); CDebuggerObjectTool.SetParent(bigType, type, newHelpGameObject); var newHelp = newHelpGameObject.AddComponent <CResourceLoadObjectDebugger>(); newHelp.Type = type; newHelp.TheObject = theObject; return(newHelp); }