private IEnumerator SendRequestCoroutine(string interfaceName, params string[] parameter) { string url = _interfaces[interfaceName].Url + (parameter.Length > 0 ? ("?" + parameter[0]) : ""); for (int i = 1; i < parameter.Length; i++) { url += "&" + parameter[i]; } using (UnityWebRequest request = UnityWebRequest.Get(url)) { DateTime begin = DateTime.Now; _interfaces[interfaceName].OnSetDownloadHandler(request); yield return(request.SendWebRequest()); DateTime end = DateTime.Now; if (!request.isNetworkError && !request.isHttpError) { GlobalTools.LogInfo(string.Format("[{0}] 发起网络请求:[{1}] {2}\r\n[{3}] 收到回复:{4}字节 string:{5}" , begin.ToString("mm:ss:fff"), interfaceName, url, end.ToString("mm:ss:fff"), request.downloadHandler.data.Length, _interfaces[interfaceName].OnGetDownloadString(request.downloadHandler))); _interfaces[interfaceName].OnRequestFinished(request.downloadHandler); } else { GlobalTools.LogError(string.Format("[{0}] 发起网络请求:[{1}] {2}\r\n[{3}] 网络请求出错:{4}", begin.ToString("mm:ss:fff"), interfaceName, url, end.ToString("mm:ss:fff"), request.error)); _interfaces[interfaceName].OnRequestFinished(null); } } }
private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("将Root及以下所有Text组件的字体颜色替换为新的颜色", MessageType.Info); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Root:"); _root = EditorGUILayout.ObjectField(_root, typeof(GameObject), true) as GameObject; GUILayout.Label("New Color:"); _targetColor = EditorGUILayout.ColorField(_targetColor); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUI.enabled = _root; if (GUILayout.Button("Replace")) { int number = 0; Text[] ts = _root.GetComponentsInChildren <Text>(true); foreach (Text t in ts) { if (t.color != _targetColor) { t.color = _targetColor; number += 1; } } GlobalTools.LogInfo("[" + _root.name + "] 替换完成!共替换了 " + number + " 处!"); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
private IEnumerator SendRequestCoroutine(string interfaceName, params string[] parameter) { string url = _interfaces[interfaceName].Url + (parameter.Length > 0 ? ("?" + parameter[0]) : ""); for (int i = 1; i < parameter.Length; i++) { url += "&" + parameter[i]; } DateTime begin = DateTime.Now; UnityWebRequest request = UnityWebRequest.Get(url); SetDownloadHandler(request, _interfaces[interfaceName]); yield return(request.SendWebRequest()); DateTime end = DateTime.Now; if (!request.isNetworkError && !request.isHttpError) { string info = string.Format("[{0}] 发起网络请求:{1}\r\n[{2}] 收到回复:{3}字节", begin.ToString("mm:ss:fff"), url, end.ToString("mm:ss:fff"), request.downloadHandler.data.Length); GlobalTools.LogInfo(info); _interfaces[interfaceName].GetRequestFinish(request.downloadHandler); } else { GlobalTools.LogError("网络请求出错:" + request.error); } request.downloadHandler.Dispose(); request.Dispose(); }
private IEnumerator SendRequestCoroutine(string interfaceName, WWWForm form) { string url = _interfaces[interfaceName].Url; DateTime begin = DateTime.Now; UnityWebRequest request = UnityWebRequest.Post(url, form); _interfaces[interfaceName].SetDownloadHandler(request); yield return(request.SendWebRequest()); DateTime end = DateTime.Now; if (!request.isNetworkError && !request.isHttpError) { string info = string.Format("[{0}] 发起网络请求:[{1}] {2}\r\n[{3}] 收到回复:{4}字节 string:{5}" , begin.ToString("mm:ss:fff"), interfaceName, url, end.ToString("mm:ss:fff"), request.downloadHandler.data.Length, _interfaces[interfaceName].GetDownloadString(request.downloadHandler)); GlobalTools.LogInfo(info); _interfaces[interfaceName].GetRequestFinish(request.downloadHandler); } else { string info = string.Format("[{0}] 发起网络请求:[{1}] {2}\r\n[{3}] 网络请求出错:{4}", begin.ToString("mm:ss:fff"), interfaceName, url, end.ToString("mm:ss:fff"), request.error); GlobalTools.LogError(info); } request.downloadHandler.Dispose(); request.Dispose(); }
public override void OnUpdate() { base.OnUpdate(); IsDone = true; GlobalTools.LogInfo("任务点:[" + Name + "]监控中......"); }
private static void ShowMeshInfo() { for (int i = 0; i < Selection.gameObjects.Length; i++) { MeshFilter filter = Selection.gameObjects[i].GetComponent <MeshFilter>(); if (filter) { GlobalTools.LogInfo("Mesh [" + filter.name + "] : vertices " + filter.sharedMesh.vertexCount + ", triangles " + filter.sharedMesh.triangles.Length); } } }
private static void CopyHotfixDll() { if (!EditorApplication.isPlayingOrWillChangePlaymode) { string sourcePath = GlobalTools.GetDirectorySameLevelOfAssets(SourceDllPath); if (File.Exists(sourcePath)) { File.Copy(sourcePath, GlobalTools.GetDirectorySameLevelOfAssets(AssetsDllPath), true); AssetDatabase.Refresh(); GlobalTools.LogInfo("更新:Assets/Hotfix/Hotfix.dll"); } } }
/// <summary> /// 连接服务器 /// </summary> public void ConnectServer(float delayed) { if (IsConnect) { GlobalTools.LogInfo("已经连接至服务器!"); return; } if (BeginConnectEvent != null) { BeginConnectEvent(); } this.DelayExecute(() => { try { _client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _client.Connect(IPAddress.Parse(IP), Port); } catch (Exception e) { GlobalTools.LogError("连接服务器出错:" + e.ToString()); } finally { if (IsConnect) { _receiveThread = new Thread(ReceiveMessage); _receiveThread.Start(); if (ConnectSuccessEvent != null) { ConnectSuccessEvent(); } } else { if (ConnectFailEvent != null) { ConnectFailEvent(); } } } }, delayed); }
private void StaticExecute() { object[] parameters = new object[_parameters.Count]; for (int i = 0; i < _parameters.Count; i++) { parameters[i] = _parameters[i].GetValue(); } if (Method.IsStatic) { object returnValue = Method.Invoke(null, parameters); if (Method.ReturnType.Name != "Void") { GlobalTools.LogInfo("Execute " + _methodName + ", Return value is: " + (returnValue != null ? returnValue.ToString() : "null")); } } else { object returnValue = Method.Invoke(Target, parameters); if (Method.ReturnType.Name != "Void") { GlobalTools.LogInfo("Execute " + _methodName + ", Return value is: " + (returnValue != null ? returnValue.ToString() : "null")); } } }
public override void OnUpdate() { base.OnUpdate(); GlobalTools.LogInfo("任务内容:[" + Name + "]监控中......"); }
protected override void AfterInvoke(MethodBase method, object returnValue) { GlobalTools.LogInfo(_realObject + " -> " + method.Name + " 执行完成!"); }
protected override object[] BeforeInvoke(MethodBase method, object[] args) { GlobalTools.LogInfo(_realObject + " -> " + method.Name + " 开始执行!"); return(args); }
private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("设置选中Texture或选中路径下的所有Texture属性", MessageType.Info); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Texture Type:", GUILayout.Width(150)); _importerType = (TextureImporterType)EditorGUILayout.EnumPopup(_importerType); EditorGUILayout.EndHorizontal(); if (_importerType == TextureImporterType.Sprite) { EditorGUILayout.BeginHorizontal(); GUILayout.Label("Packing Tag:", GUILayout.Width(150)); _packingTag = EditorGUILayout.TextField(_packingTag); EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); GUILayout.Label("Generate Mip Map:", GUILayout.Width(150)); _generateMipMap = EditorGUILayout.Toggle(_generateMipMap); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Use Crunch Compre:", GUILayout.Width(150)); _useCrunchCompre = EditorGUILayout.Toggle(_useCrunchCompre); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set All")) { _number = 0; Object[] textures = Selection.GetFiltered <Texture2D>(SelectionMode.DeepAssets); for (int i = 0; i < textures.Length; i++) { string path = AssetDatabase.GetAssetPath(textures[i]); TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; textureImporter.textureType = _importerType; textureImporter.mipmapEnabled = _generateMipMap; textureImporter.crunchedCompression = _useCrunchCompre; if (textureImporter.textureType == TextureImporterType.Sprite) { textureImporter.spritePackingTag = _packingTag; } AssetDatabase.ImportAsset(path); _number += 1; } AssetDatabase.Refresh(); GlobalTools.LogInfo("设置完成!共设置了 " + _number + " 张 Texture!"); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Only Set Property")) { _number = 0; Object[] textures = Selection.GetFiltered <Texture2D>(SelectionMode.DeepAssets); for (int i = 0; i < textures.Length; i++) { string path = AssetDatabase.GetAssetPath(textures[i]); TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; textureImporter.mipmapEnabled = _generateMipMap; textureImporter.crunchedCompression = _useCrunchCompre; if (textureImporter.textureType == TextureImporterType.Sprite) { textureImporter.spritePackingTag = _packingTag; } AssetDatabase.ImportAsset(path); _number += 1; } AssetDatabase.Refresh(); GlobalTools.LogInfo("设置完成!共设置了 " + _number + " 张 Texture!"); } EditorGUILayout.EndHorizontal(); }
protected override void OnInspectorDefaultGUI() { base.OnInspectorDefaultGUI(); #region Property GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); bool showProperty = EditorGUILayout.Foldout(_showProperty, "Property", true); if (showProperty != _showProperty) { _showProperty = showProperty; EditorPrefs.SetBool(EditorPrefsTable.Transform_Property, _showProperty); } GUILayout.EndHorizontal(); if (_showProperty) { GUILayout.BeginVertical(EditorGlobalTools.Styles.Box); GUILayout.BeginHorizontal(); GUILayout.Label("Position", GUILayout.Width(80)); Vector3 pos = EditorGUILayout.Vector3Field("", Target.position); if (pos != Target.position) { Undo.RecordObject(Target, "Move " + Target.name); Target.position = pos; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Rotation", GUILayout.Width(80)); Vector3 rot = EditorGUILayout.Vector3Field("", Target.rotation.eulerAngles); if (rot != Target.rotation.eulerAngles) { Undo.RecordObject(Target, "Rotate " + Target.name); Target.rotation = Quaternion.Euler(rot); HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Scale", GUILayout.Width(80)); GUI.enabled = false; EditorGUILayout.Vector3Field("", Target.lossyScale); GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalPosition", GUILayout.Width(80)); Vector3 localpos = EditorGUILayout.Vector3Field("", Target.localPosition); if (localpos != Target.localPosition) { Undo.RecordObject(Target, "Move " + Target.name); Target.localPosition = localpos; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalRotation", GUILayout.Width(80)); Vector3 localrot = EditorGUILayout.Vector3Field("", Target.localRotation.eulerAngles); if (localrot != Target.localRotation.eulerAngles) { Undo.RecordObject(Target, "Rotate " + Target.name); Target.localRotation = Quaternion.Euler(localrot); HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalScale", GUILayout.Width(80)); Vector3 localsca = EditorGUILayout.Vector3Field("", Target.localScale); if (localsca != Target.localScale) { Undo.RecordObject(Target, "Scale " + Target.name); Target.localScale = localsca; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion #region Hierarchy GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); bool showHierarchy = EditorGUILayout.Foldout(_showHierarchy, "Hierarchy", true); if (showHierarchy != _showHierarchy) { _showHierarchy = showHierarchy; EditorPrefs.SetBool(EditorPrefsTable.Transform_Hierarchy, _showHierarchy); } GUILayout.EndHorizontal(); if (_showHierarchy) { GUILayout.BeginVertical(EditorGlobalTools.Styles.Box); GUILayout.BeginHorizontal(); GUILayout.Label("Root: ", GUILayout.Width(80)); EditorGUILayout.ObjectField(Target.root, typeof(Transform), true); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Parent: ", GUILayout.Width(80)); GUI.color = Target.parent ? Color.white : Color.gray; _parent = EditorGUILayout.ObjectField(Target.parent, typeof(Transform), true) as Transform; if (_parent != Target.parent) { Undo.RecordObject(Target, "Change Parent " + Target.name); Target.SetParent(_parent); HasChanged(); } GUI.color = Color.white; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Child Count: ", GUILayout.Width(80)); GUILayout.Label(Target.childCount.ToString()); GUILayout.FlexibleSpace(); GUI.enabled = Target.childCount > 0; if (GUILayout.Button("Detach", "Minibutton")) { if (EditorUtility.DisplayDialog("Prompt", "Are you sure you want to detach all children?", "Yes", "No")) { Undo.RecordObject(Target, "Detach Children"); Target.DetachChildren(); HasChanged(); } } GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Expand Children", "MinibuttonLeft")) { Type type = EditorGlobalTools.GetTypeInEditorAssemblies("UnityEditor.SceneHierarchyWindow"); EditorWindow window = EditorWindow.GetWindow(type); MethodInfo method = window.GetType().GetMethod("SetExpandedRecursive", BindingFlags.Public | BindingFlags.Instance); int id = Target.gameObject.GetInstanceID(); method.Invoke(window, new object[] { id, true }); } if (GUILayout.Button("Retract Children", "MinibuttonRight")) { Type type = EditorGlobalTools.GetTypeInEditorAssemblies("UnityEditor.SceneHierarchyWindow"); EditorWindow window = EditorWindow.GetWindow(type); MethodInfo method = window.GetType().GetMethod("SetExpandedRecursive", BindingFlags.Public | BindingFlags.Instance); int id = Target.gameObject.GetInstanceID(); method.Invoke(window, new object[] { id, false }); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Retract All", "Minibutton")) { Type type = EditorGlobalTools.GetTypeInEditorAssemblies("UnityEditor.SceneHierarchyWindow"); EditorWindow window = EditorWindow.GetWindow(type); object hierarchy = window.GetType().GetProperty("sceneHierarchy", BindingFlags.Public | BindingFlags.Instance).GetValue(window); int[] expandedIDs = hierarchy.GetType().GetMethod("GetExpandedIDs", BindingFlags.Public | BindingFlags.Instance).Invoke(hierarchy, null) as int[]; MethodInfo method = hierarchy.GetType().GetMethod("ExpandTreeViewItem", BindingFlags.NonPublic | BindingFlags.Instance); object[] args = new object[2]; args[1] = false; for (int i = 0; i < expandedIDs.Length; i++) { args[0] = expandedIDs[i]; method.Invoke(hierarchy, args); } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion #region Copy GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); bool showCopy = EditorGUILayout.Foldout(_showCopy, "Copy", true); if (showCopy != _showCopy) { _showCopy = showCopy; EditorPrefs.SetBool(EditorPrefsTable.Transform_Copy, _showCopy); } GUILayout.EndHorizontal(); if (_showCopy) { GUILayout.BeginVertical(EditorGlobalTools.Styles.Box); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Position", EditorStyles.miniButtonLeft)) { GUIUtility.systemCopyBuffer = Target.position.ToCopyString("F4"); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } if (GUILayout.Button("Copy LocalPosition", EditorStyles.miniButtonRight)) { GUIUtility.systemCopyBuffer = Target.localPosition.ToCopyString("F4"); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Rotation", EditorStyles.miniButtonLeft)) { if (_copyQuaternion) { GUIUtility.systemCopyBuffer = Target.rotation.ToCopyString("F4"); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } else { string x = ClampAngle(Target.rotation.eulerAngles.x).ToString(); string y = ClampAngle(Target.rotation.eulerAngles.y).ToString(); string z = ClampAngle(Target.rotation.eulerAngles.z).ToString(); GUIUtility.systemCopyBuffer = x + "f," + y + "f," + z + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } } if (GUILayout.Button("Copy LocalRotation", EditorStyles.miniButtonRight)) { if (_copyQuaternion) { GUIUtility.systemCopyBuffer = Target.localRotation.ToCopyString("F4"); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } else { string x = ClampAngle(Target.localRotation.eulerAngles.x).ToString(); string y = ClampAngle(Target.localRotation.eulerAngles.y).ToString(); string z = ClampAngle(Target.localRotation.eulerAngles.z).ToString(); GUIUtility.systemCopyBuffer = x + "f," + y + "f," + z + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Scale", EditorStyles.miniButton)) { GUIUtility.systemCopyBuffer = Target.localScale.ToCopyString("F4"); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Name", EditorStyles.miniButtonLeft)) { GUIUtility.systemCopyBuffer = Target.name; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } if (GUILayout.Button("Copy FullName", EditorStyles.miniButtonRight)) { GUIUtility.systemCopyBuffer = Target.FullName(); GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); _copyQuaternion = GUILayout.Toggle(_copyQuaternion, "Copy Quaternion"); GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion }
public override void OnStart() { base.OnStart(); GlobalTools.LogInfo("任务内容:[" + Name + "]开始!"); }
protected override void OnInspectorDefaultGUI() { base.OnInspectorDefaultGUI(); #region Property GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); _showProperty = EditorGUILayout.Foldout(_showProperty, "Property", true); GUILayout.EndHorizontal(); if (_showProperty) { GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal(); GUILayout.Label("Position", GUILayout.Width(80)); Vector3 pos = EditorGUILayout.Vector3Field("", Target.position); if (pos != Target.position) { Undo.RecordObject(Target, "Move " + Target.name); Target.position = pos; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Rotation", GUILayout.Width(80)); Vector3 rot = EditorGUILayout.Vector3Field("", Target.rotation.eulerAngles); if (rot != Target.rotation.eulerAngles) { Undo.RecordObject(Target, "Rotate " + Target.name); Target.rotation = Quaternion.Euler(rot); HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Scale", GUILayout.Width(80)); GUI.enabled = false; EditorGUILayout.Vector3Field("", Target.lossyScale); GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalPosition", GUILayout.Width(80)); Vector3 localpos = EditorGUILayout.Vector3Field("", Target.localPosition); if (localpos != Target.localPosition) { Undo.RecordObject(Target, "Move " + Target.name); Target.localPosition = localpos; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalRotation", GUILayout.Width(80)); Vector3 localrot = EditorGUILayout.Vector3Field("", Target.localRotation.eulerAngles); if (localrot != Target.localRotation.eulerAngles) { Undo.RecordObject(Target, "Rotate " + Target.name); Target.localRotation = Quaternion.Euler(localrot); HasChanged(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("LocalScale", GUILayout.Width(80)); Vector3 localsca = EditorGUILayout.Vector3Field("", Target.localScale); if (localsca != Target.localScale) { Undo.RecordObject(Target, "Scale " + Target.name); Target.localScale = localsca; HasChanged(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion #region Copy GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); _showCopy = EditorGUILayout.Foldout(_showCopy, "Copy", true); GUILayout.EndHorizontal(); if (_showCopy) { GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Position", "MiniButtonLeft")) { GUIUtility.systemCopyBuffer = Target.position.x.ToString("F4") + "f," + Target.position.y.ToString("F4") + "f," + Target.position.z.ToString("F4") + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } if (GUILayout.Button("Copy LocalPosition", "MiniButtonRight")) { GUIUtility.systemCopyBuffer = Target.localPosition.x.ToString("F4") + "f," + Target.localPosition.y.ToString("F4") + "f," + Target.localPosition.z.ToString("F4") + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Rotation", "MiniButtonLeft")) { if (_copyQuaternion) { GUIUtility.systemCopyBuffer = Target.rotation.x.ToString("F4") + "f," + Target.rotation.y.ToString("F4") + "f," + Target.rotation.z.ToString("F4") + "f," + Target.rotation.w.ToString("F4") + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } else { string x = Target.rotation.eulerAngles.x > 180 ? ((int)Target.rotation.eulerAngles.x - 360).ToString() : ((int)Target.rotation.eulerAngles.x).ToString(); string y = Target.rotation.eulerAngles.y > 180 ? ((int)Target.rotation.eulerAngles.y - 360).ToString() : ((int)Target.rotation.eulerAngles.y).ToString(); string z = Target.rotation.eulerAngles.z > 180 ? ((int)Target.rotation.eulerAngles.z - 360).ToString() : ((int)Target.rotation.eulerAngles.z).ToString(); GUIUtility.systemCopyBuffer = x + "f," + y + "f," + z + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } } if (GUILayout.Button("Copy LocalRotation", "MiniButtonRight")) { if (_copyQuaternion) { GUIUtility.systemCopyBuffer = Target.localRotation.x.ToString("F4") + "f," + Target.localRotation.y.ToString("F4") + "f," + Target.localRotation.z.ToString("F4") + "f," + Target.localRotation.w.ToString("F4") + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } else { string x = Target.localRotation.eulerAngles.x > 180 ? ((int)Target.localRotation.eulerAngles.x - 360).ToString() : ((int)Target.localRotation.eulerAngles.x).ToString(); string y = Target.localRotation.eulerAngles.y > 180 ? ((int)Target.localRotation.eulerAngles.y - 360).ToString() : ((int)Target.localRotation.eulerAngles.y).ToString(); string z = Target.localRotation.eulerAngles.z > 180 ? ((int)Target.localRotation.eulerAngles.z - 360).ToString() : ((int)Target.localRotation.eulerAngles.z).ToString(); GUIUtility.systemCopyBuffer = x + "f," + y + "f," + z + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Scale", "MiniButton")) { GUIUtility.systemCopyBuffer = Target.localScale.x.ToString("F4") + "f," + Target.localScale.y.ToString("F4") + "f," + Target.localScale.z.ToString("F4") + "f"; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal(); if (GUILayout.Button("Copy Name", "MiniButtonLeft")) { GUIUtility.systemCopyBuffer = Target.name; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } if (GUILayout.Button("Copy FullName", "MiniButtonRight")) { List <Transform> transforms = new List <Transform>(); Transform transform = Target; transforms.Add(transform); while (transform.parent) { transform = transform.parent; transforms.Add(transform); } string name = ""; name += transforms[transforms.Count - 1].name; for (int i = transforms.Count - 2; i >= 0; i--) { name += "/" + transforms[i].name; } GUIUtility.systemCopyBuffer = name; GlobalTools.LogInfo("已复制:" + GUIUtility.systemCopyBuffer); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion #region Setting GUILayout.BeginHorizontal("MeTransitionHead"); GUILayout.Space(12); _showSetting = EditorGUILayout.Foldout(_showSetting, "Setting", true); GUILayout.EndHorizontal(); if (_showSetting) { GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal(); _copyQuaternion = GUILayout.Toggle(_copyQuaternion, "Copy Quaternion"); GUILayout.EndHorizontal(); GUILayout.EndVertical(); } #endregion }
//异步加载资源 private IEnumerator LoadAssetAsync <T>(ResourceInfoBase info, HTFAction <float> loadingAction, HTFAction <T> loadDoneAction, bool isPrefab = false, Transform parent = null, bool isUI = false) where T : UnityEngine.Object { DateTime beginTime = DateTime.Now; if (_isLoading) { yield return(_loadWait); } _isLoading = true; yield return(Main.Current.StartCoroutine(LoadDependenciesAssetBundleAsync(info.AssetBundleName))); DateTime waitTime = DateTime.Now; UnityEngine.Object asset = null; if (Mode == ResourceLoadMode.Resource) { ResourceRequest request = Resources.LoadAsync <T>(info.ResourcePath); while (!request.isDone) { loadingAction?.Invoke(request.progress); yield return(null); } asset = request.asset; if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:Resources文件夹中不存在资源 " + info.ResourcePath + "!"); } } else { #if UNITY_EDITOR if (IsEditorMode) { loadingAction?.Invoke(1); yield return(null); asset = AssetDatabase.LoadAssetAtPath <T>(info.AssetPath); if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:路径中不存在资源 " + info.AssetPath + "!"); } } else { if (_assetBundles.ContainsKey(info.AssetBundleName)) { loadingAction?.Invoke(1); yield return(null); asset = _assetBundles[info.AssetBundleName].LoadAsset <T>(info.AssetPath); if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:AB包 " + info.AssetBundleName + " 中不存在资源 " + info.AssetPath + " !"); } } else { using (UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(_assetBundleRootPath + info.AssetBundleName, GetAssetBundleHash(info.AssetBundleName))) { request.SendWebRequest(); while (!request.isDone) { loadingAction?.Invoke(request.downloadProgress); yield return(null); } if (!request.isNetworkError && !request.isHttpError) { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request); if (bundle) { asset = bundle.LoadAsset <T>(info.AssetPath); if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:AB包 " + info.AssetBundleName + " 中不存在资源 " + info.AssetPath + " !"); } if (IsCacheAssetBundle) { if (!_assetBundles.ContainsKey(info.AssetBundleName)) { _assetBundles.Add(info.AssetBundleName, bundle); } } else { bundle.Unload(false); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "请求:" + request.url + " 未下载到AB包!"); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "请求:" + request.url + " 遇到网络错误:" + request.error + "!"); } } } } #else if (_assetBundles.ContainsKey(info.AssetBundleName)) { loadingAction?.Invoke(1); yield return(null); asset = _assetBundles[info.AssetBundleName].LoadAsset <T>(info.AssetPath); if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:AB包 " + info.AssetBundleName + " 中不存在资源 " + info.AssetPath + " !"); } } else { using (UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(_assetBundleRootPath + info.AssetBundleName, GetAssetBundleHash(info.AssetBundleName))) { request.SendWebRequest(); while (!request.isDone) { loadingAction?.Invoke(request.downloadProgress); yield return(null); } if (!request.isNetworkError && !request.isHttpError) { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(request); if (bundle) { asset = bundle.LoadAsset <T>(info.AssetPath); if (asset) { if (isPrefab) { asset = ClonePrefab(asset as GameObject, parent, isUI); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "加载资源失败:AB包 " + info.AssetBundleName + " 中不存在资源 " + info.AssetPath + " !"); } if (IsCacheAssetBundle) { if (!_assetBundles.ContainsKey(info.AssetBundleName)) { _assetBundles.Add(info.AssetBundleName, bundle); } } else { bundle.Unload(false); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "请求:" + request.url + " 未下载到AB包!"); } } else { throw new HTFrameworkException(HTFrameworkModule.Resource, "请求:" + request.url + " 遇到网络错误:" + request.error + "!"); } } } #endif } DateTime endTime = DateTime.Now; GlobalTools.LogInfo(string.Format("异步加载资源{0}[{1}模式]:\r\n{2}\r\n等待耗时:{3}秒 加载耗时:{4}秒", asset ? "成功" : "失败", Mode , Mode == ResourceLoadMode.Resource ? info.GetResourceFullPath() : info.GetAssetBundleFullPath(_assetBundleRootPath) , (waitTime - beginTime).TotalSeconds, (endTime - waitTime).TotalSeconds)); if (asset) { DataSetInfo dataSet = info as DataSetInfo; if (dataSet != null && dataSet.Data != null) { asset.Cast <DataSetBase>().Fill(dataSet.Data); } loadDoneAction?.Invoke(asset as T); } asset = null; _isLoading = false; }
private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("批处理Root下的MeshRenderer组件", MessageType.Info); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Root:", GUILayout.Width(120)); _root = EditorGUILayout.ObjectField(_root, typeof(GameObject), true) as GameObject; EditorGUILayout.EndHorizontal(); GUI.enabled = _root; EditorGUILayout.BeginHorizontal(); GUILayout.Label("Replace Material:", GUILayout.Width(120)); _mat = EditorGUILayout.ObjectField(_mat, typeof(Material), true) as Material; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Light Probes:", GUILayout.Width(120)); _lightProbe = (LightProbeUsage)EditorGUILayout.EnumPopup(_lightProbe); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Reflection Probes:", GUILayout.Width(120)); _reflectionProbe = (ReflectionProbeUsage)EditorGUILayout.EnumPopup(_reflectionProbe); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Cast Shadows:", GUILayout.Width(120)); _castShadows = (ShadowCastingMode)EditorGUILayout.EnumPopup(_castShadows); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Receive Shadows:", GUILayout.Width(120)); _receiveShadows = EditorGUILayout.Toggle(_receiveShadows); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set")) { MeshRenderer[] renderers = _root.GetComponentsInChildren <MeshRenderer>(true); for (int i = 0; i < renderers.Length; i++) { if (_mat) { Material[] materials = new Material[renderers[i].sharedMaterials.Length]; for (int j = 0; j < materials.Length; j++) { materials[j] = _mat; } renderers[i].sharedMaterials = materials; } renderers[i].lightProbeUsage = _lightProbe; renderers[i].reflectionProbeUsage = _reflectionProbe; renderers[i].shadowCastingMode = _castShadows; renderers[i].receiveShadows = _receiveShadows; } GlobalTools.LogInfo("[" + _root.name + "] 设置完成!共设置了 " + renderers.Length + " 处!"); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; }
private static void ConsoleDebugLog() { GlobalTools.LogInfo("Debug.Log!"); }
public override void OnExecute() { base.OnExecute(); GlobalTools.LogInfo("任务内容:[" + Name + "]完成!"); }
private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("设置Root及以下所有Graphic组件的Raycast Target属性", MessageType.Info); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Root:", GUILayout.Width(100)); _root = EditorGUILayout.ObjectField(_root, typeof(GameObject), true) as GameObject; EditorGUILayout.EndHorizontal(); GUI.enabled = _root; EditorGUILayout.BeginHorizontal(); GUILayout.Label("Text", GUILayout.Width(100)); _text = GUILayout.Toggle(_text, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Image", GUILayout.Width(100)); _image = GUILayout.Toggle(_image, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("RawImage", GUILayout.Width(100)); _rawImage = GUILayout.Toggle(_rawImage, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Button", GUILayout.Width(100)); _button = GUILayout.Toggle(_button, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Toggle", GUILayout.Width(100)); _toggle = GUILayout.Toggle(_toggle, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Slider", GUILayout.Width(100)); _slider = GUILayout.Toggle(_slider, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Scrollbar", GUILayout.Width(100)); _scrollbar = GUILayout.Toggle(_scrollbar, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("InputField", GUILayout.Width(100)); _inputField = GUILayout.Toggle(_inputField, ""); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set")) { Text[] ts = _root.GetComponentsInChildren <Text>(true); foreach (Text t in ts) { t.raycastTarget = _text; } GlobalTools.LogInfo("[" + _root.name + "] Text设置完成!共设置了 " + ts.Length + " 处Raycast Target为" + _text + "!"); Image[] ims = _root.GetComponentsInChildren <Image>(true); foreach (Image i in ims) { i.raycastTarget = _image; } GlobalTools.LogInfo("[" + _root.name + "] Image设置完成!共设置了 " + ims.Length + " 处Raycast Target为" + _image + "!"); RawImage[] ris = _root.GetComponentsInChildren <RawImage>(true); foreach (RawImage ri in ris) { ri.raycastTarget = _rawImage; } GlobalTools.LogInfo("[" + _root.name + "] RawImage设置完成!共设置了 " + ris.Length + " 处Raycast Target为" + _rawImage + "!"); Button[] bs = _root.GetComponentsInChildren <Button>(true); foreach (Button b in bs) { if (b.targetGraphic) { b.targetGraphic.raycastTarget = _button; } } GlobalTools.LogInfo("[" + _root.name + "] Button设置完成!共设置了 " + bs.Length + " 处Raycast Target为" + _button + "!"); Toggle[] tos = _root.GetComponentsInChildren <Toggle>(true); foreach (Toggle t in tos) { if (t.graphic) { t.graphic.raycastTarget = _toggle; } } GlobalTools.LogInfo("[" + _root.name + "] Toggle设置完成!共设置了 " + tos.Length + " 处Raycast Target为" + _toggle + "!"); Slider[] ss = _root.GetComponentsInChildren <Slider>(true); foreach (Slider t in ss) { if (t.fillRect) { t.fillRect.GetComponent <Image>().raycastTarget = _slider; } } GlobalTools.LogInfo("[" + _root.name + "] Slider设置完成!共设置了 " + ss.Length + " 处Raycast Target为" + _slider + "!"); Scrollbar[] slls = _root.GetComponentsInChildren <Scrollbar>(true); foreach (Scrollbar s in slls) { if (s.GetComponent <Image>()) { s.GetComponent <Image>().raycastTarget = _scrollbar; } if (s.handleRect) { s.handleRect.GetComponent <Image>().raycastTarget = _scrollbar; } } GlobalTools.LogInfo("[" + _root.name + "] Scrollbar设置完成!共设置了 " + slls.Length + " 处Raycast Target为" + _scrollbar + "!"); InputField[] ifs = _root.GetComponentsInChildren <InputField>(true); foreach (InputField i in ifs) { if (i.textComponent) { i.textComponent.raycastTarget = _inputField; } } GlobalTools.LogInfo("[" + _root.name + "] InputField设置完成!共设置了 " + ifs.Length + " 处Raycast Target为" + _inputField + "!"); } EditorGUILayout.EndHorizontal(); GUI.enabled = true; }
private static void OnPostProcessBuild(BuildTarget target, string pathToBuildProject) { GlobalTools.LogInfo("项目发布成功!发布平台:" + target.ToString() + "!发布路径:" + pathToBuildProject + "!"); PostProcessBuildEvent?.Invoke(target, pathToBuildProject); }