IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Unity Editor编辑器开发相关知识点 -> 正文阅读

[开发工具]Unity Editor编辑器开发相关知识点

EditorPrefs

Unity编辑器为开发者提供了类似PlayerPrefs的数据保存方式EditorPrefs。EditorPrefs是适用于编辑器模式,而PlayerPrefs适用于游戏运行时。

示例代码

            bool currentValue = EditorPrefs.GetBool(key, false);
            bool newValue = GUILayout.Toggle(currentValue, label);
            EditorPrefs.SetBool(key, newValue);

编辑器模式下获取鼠标坐标与点击

使用Event.current.mousePosition获取鼠标坐标。

通过Event.current.type获取点击类型。

示例代码

                    if(Event.current.type == EventType.MouseDown || Event.current.type == EventType.MouseDrag)
                        DoSomething();

输入类型有如下几种。

    //
    // 摘要:
    //     Types of UnityGUI input and processing events.
    public enum EventType
    {
        MouseDown = 0,
        mouseDown = 0,
        MouseUp = 1,
        mouseUp = 1,
        MouseMove = 2,
        mouseMove = 2,
        MouseDrag = 3,
        mouseDrag = 3,
        KeyDown = 4,
        keyDown = 4,
        KeyUp = 5,
        keyUp = 5,
        ScrollWheel = 6,
        scrollWheel = 6,
        Repaint = 7,
        repaint = 7,
        Layout = 8,
        layout = 8,
        DragUpdated = 9,
        dragUpdated = 9,
        DragPerform = 10,
        dragPerform = 10,
        Ignore = 11,
        ignore = 11,
        Used = 12,
        used = 12,
        ValidateCommand = 13,
        ExecuteCommand = 14,
        DragExited = 15,
        ContextClick = 16,
        MouseEnterWindow = 20,
        MouseLeaveWindow = 21
    }

编辑器模式下鼠标坐标转换屏幕坐标

编辑器模式下坐标系是左上角为原点,而且实际的屏幕坐标是Event.current.mousePosition坐标的两倍,如果使用编辑器模式下的鼠标坐标需要转换坐标。

            Camera camera = SceneView.currentDrawingSceneView.camera; //获取到编辑器模式下的相机,这个相机是看不到的,但是可以拿到
            Vector3 mousePosition = Event.current.mousePosition * 2; //需要乘以两倍
            mousePosition = new Vector3(mousePosition.x, camera.pixelHeight - mousePosition.y); //实际屏幕坐标

其他

在scene场景中不会点击选中物体。

            HandleUtility.AddDefaultControl (GUIUtility.GetControlID (FocusType.Passive));

使用HideFlags隐藏或者不可编辑目标。

			obj.hideFlags = HideFlags.HideInHierarchy; //在Hierarchy中不显示目标
			_myTarget.transform.hideFlags = HideFlags.NotEditable; //不允许在Inspector中编辑transform

OnSceneGUI使编辑器在场景视图中处理事件。

        private void OnSceneGUI()
        {
            List<Mode> modes = EditorUtils.GetListFromEnum<Mode>();
            List<string> modeLabels = new List<string>();
            foreach (Mode mode in modes)
            {
                modeLabels.Add(mode.ToString());
            }
            
            Handles.BeginGUI();
            
            GUILayout.BeginArea(new Rect(10f,10f,360f , 40));

            _selectedMode = (Mode)GUILayout.Toolbar((int) _currentMode, modeLabels.ToArray(), GUILayout.ExpandHeight(true));
            
            GUILayout.EndArea();
            
            Handles.EndGUI();
        }

效果图
在这里插入图片描述
SceneView.currentDrawingSceneView.in2DMode = true;切换为2D视图。

GUI.FocusControl("");取消Editor界面焦点。

Editor.CreateEditor(temp).DrawDefaultInspector();在当前Inspector界面显示目标脚本的Inspector。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:11:00  更:2022-05-21 19:12:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 11:19:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码