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);
                }
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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();
        }
示例#4
0
        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();
        }
示例#5
0
        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");
         }
     }
 }
示例#8
0
        /// <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);
        }
示例#9
0
 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 + "]监控中......");
        }
示例#11
0
 protected override void AfterInvoke(MethodBase method, object returnValue)
 {
     GlobalTools.LogInfo(_realObject + " -> " + method.Name + " 执行完成!");
 }
示例#12
0
 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();
        }
示例#14
0
        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 + "]开始!");
        }
示例#16
0
        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
        }
示例#17
0
        //异步加载资源
        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;
        }
示例#18
0
        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;
        }
示例#19
0
 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;
        }
示例#22
0
        private static void OnPostProcessBuild(BuildTarget target, string pathToBuildProject)
        {
            GlobalTools.LogInfo("项目发布成功!发布平台:" + target.ToString() + "!发布路径:" + pathToBuildProject + "!");

            PostProcessBuildEvent?.Invoke(target, pathToBuildProject);
        }