public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); MonoResource t = (MonoResource)target; bool isEditorResourceMode = (bool)m_EditorResourceModeFieldInfo.GetValue(target); if (isEditorResourceMode) { EditorGUILayout.HelpBox("Editor resource mode is enabled. Some options are disabled.", MessageType.Warning); } EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject)) { EditorGUILayout.EnumPopup("Resource Mode", t.ResourceMode); } else { int selectedIndex = EditorGUILayout.Popup("Resource Mode", m_ResourceModeIndex, ResourceModeNames); if (selectedIndex != m_ResourceModeIndex) { m_ResourceModeIndex = selectedIndex; m_ResourceMode.enumValueIndex = selectedIndex + 1; } } m_ReadWritePathType.enumValueIndex = (int)(ReadWritePathType)EditorGUILayout.EnumPopup("Read Write Path Type", t.ReadWritePathType); } EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { EditorGUILayout.PropertyField(m_NeedWinUpdate); } EditorGUI.EndDisabledGroup(); float unloadUnusedAssetsInterval = EditorGUILayout.Slider("Unload Unused Assets Interval", m_UnloadUnusedAssetsInterval.floatValue, 0f, 3600f); if (unloadUnusedAssetsInterval != m_UnloadUnusedAssetsInterval.floatValue) { if (EditorApplication.isPlaying) { t.UnloadUnusedAssetsInterval = unloadUnusedAssetsInterval; } else { m_UnloadUnusedAssetsInterval.floatValue = unloadUnusedAssetsInterval; } } EditorGUI.BeginDisabledGroup(EditorApplication.isPlaying && isEditorResourceMode); { if (m_ResourceModeIndex > 0) { string updatePrefixUri = EditorGUILayout.DelayedTextField("Update Prefix Uri", m_UpdatePrefixUri.stringValue); if (updatePrefixUri != m_UpdatePrefixUri.stringValue) { if (EditorApplication.isPlaying) { t.UpdatePrefixUri = updatePrefixUri; } else { m_UpdatePrefixUri.stringValue = updatePrefixUri; } } int generateReadWriteVersionListLength = EditorGUILayout.IntSlider("Generate Read Write Version List Length", m_GenerateReadWriteVersionListLengthX.intValue, 32, 4096); if (generateReadWriteVersionListLength != m_GenerateReadWriteVersionListLengthX.intValue) { if (EditorApplication.isPlaying) { t.GenerateReadWriteVersionListLengthX = generateReadWriteVersionListLength; } else { m_GenerateReadWriteVersionListLengthX.intValue = generateReadWriteVersionListLength; } } int updateRetryCount = EditorGUILayout.IntSlider("Update Retry Count", m_UpdateRetryCount.intValue, 0, 9); if (updateRetryCount != m_UpdateRetryCount.intValue) { if (EditorApplication.isPlaying) { t.UpdateRetryCount = updateRetryCount; } else { m_UpdateRetryCount.intValue = updateRetryCount; } } } } EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { m_ResourceHelperInfo.Draw(); m_LoadResourceAgentHelperInfo.Draw(); m_LoadResourceAgentHelperCount.intValue = EditorGUILayout.IntSlider("Load Resource Agent Helper Count", m_LoadResourceAgentHelperCount.intValue, 1, 128); } EditorGUI.EndDisabledGroup(); if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject)) { //EditorGUILayout.LabelField("Read Only Path", t.ReadOnlyPath.ToString()); //EditorGUILayout.LabelField("Read Write Path", t.ReadWritePath.ToString()); EditorGUILayout.LabelField("Current Variant", t.CurrentVariant ?? "<Unknwon>"); EditorGUILayout.LabelField("Applicable Game Version", isEditorResourceMode ? "N/A" : t?.ApplicableGameVersion ?? "<Unknwon>"); EditorGUILayout.LabelField("Internal Resource Version", isEditorResourceMode ? "N/A" : t?.InternalResourceVersion?.ToString()); EditorGUILayout.LabelField("Asset Count", isEditorResourceMode ? "N/A" : t?.AssetCount.ToString()); EditorGUILayout.LabelField("Resource Count", isEditorResourceMode ? "N/A" : t?.ResourceCount.ToString()); EditorGUILayout.LabelField("Resource Group Count", isEditorResourceMode ? "N/A" : t?.ResourceGroupCount.ToString()); if (m_ResourceModeIndex > 0) { EditorGUILayout.LabelField("Applying Resource Pack Path", isEditorResourceMode ? "N/A" : t.ApplyingResourcePackPath ?? "<Unknwon>"); EditorGUILayout.LabelField("Apply Waiting Count", isEditorResourceMode ? "N/A" : t?.ApplyWaitingCount.ToString()); EditorGUILayout.LabelField("Updating Resource Group", isEditorResourceMode ? "N/A" : t?.UpdatingResourceGroup != null ? t?.UpdatingResourceGroup.Name : "<Unknwon>"); EditorGUILayout.LabelField("Update Waiting Count", isEditorResourceMode ? "N/A" : t?.UpdateWaitingCount.ToString()); EditorGUILayout.LabelField("Update Candidate Count", isEditorResourceMode ? "N/A" : t?.UpdateCandidateCount.ToString()); EditorGUILayout.LabelField("Updating Count", isEditorResourceMode ? "N/A" : t?.UpdatingCount.ToString()); } EditorGUILayout.LabelField("Load Total Agent Count", isEditorResourceMode ? "N/A" : t?.LoadTotalAgentCount.ToString()); EditorGUILayout.LabelField("Load Free Agent Count", isEditorResourceMode ? "N/A" : t?.LoadFreeAgentCount.ToString()); EditorGUILayout.LabelField("Load Working Agent Count", isEditorResourceMode ? "N/A" : t?.LoadWorkingAgentCount.ToString()); EditorGUILayout.LabelField("Load Waiting Task Count", isEditorResourceMode ? "N/A" : t?.LoadWaitingTaskCount.ToString()); if (!isEditorResourceMode) { EditorGUILayout.BeginVertical("box"); { TaskInfo[] loadAssetInfos = t.GetAllLoadAssetInfos(); if (loadAssetInfos.Length > 0) { foreach (TaskInfo loadAssetInfo in loadAssetInfos) { DrawLoadAssetInfo(loadAssetInfo); } if (GUILayout.Button("Export CSV Data")) { string exportFileName = EditorUtility.SaveFilePanel("Export CSV Data", string.Empty, "Load Asset Task Data.csv", string.Empty); if (!string.IsNullOrEmpty(exportFileName)) { try { int index = 0; string[] data = new string[loadAssetInfos.Length + 1]; data[index++] = "Load Asset Name,Serial Id,Priority,Status"; foreach (TaskInfo loadAssetInfo in loadAssetInfos) { data[index++] = Utility.Text.Format("{0},{1},{2},{3}", loadAssetInfo.Description, loadAssetInfo.SerialId.ToString(), loadAssetInfo.Priority.ToString(), loadAssetInfo.Status.ToString()); } File.WriteAllLines(exportFileName, data, Encoding.UTF8); Debug.Log(Utility.Text.Format("Export load asset task CSV data to '{0}' success.", exportFileName)); } catch (Exception exception) { Debug.LogError(Utility.Text.Format("Export load asset task CSV data to '{0}' failure, exception is '{1}'.", exportFileName, exception.ToString())); } } } } else { GUILayout.Label("Load Asset Task is Empty ..."); } } EditorGUILayout.EndVertical(); } } serializedObject.ApplyModifiedProperties(); Repaint(); }
public void SetComponent(MonoResource resource) { this.componentResource = resource; }