当前位置:   article > 正文

Unity3D-EditorWindow应用学习01_unity editorwindow初始化

unity editorwindow初始化

目标

绘制传感器读入的一组数据,在线(实时)绘制成折线图,效果类似下面这样
(当然这个图是Excel的了)
在这里插入图片描述参考了很多教程&博客,参考最后的时候一并列出
一遍学习一边写博客,不知道最后产出会是神马样子

学习内容:EditorWindow

EditorWindow类,继承 ScriptableObject,用于创建一个编辑器窗口,通常用 MenuItem 打开编辑器窗口
1.创建脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor; //添加的引用

public class MyData : EditorWindow {
	//不再是继承mono,而是继承EditorWindow
	//也不需要挂在在物体上,脚本放到Editor文件夹就ok
	//初始化窗口
	MyData()
    {
        this.titleContent = new GUIContent("window2");
    }
    //设置窗口出现打开的位置
    [MenuItem("Test/Test窗口")]
    static void CreateTestWindows()
    {
        EditorWindow.GetWindow(typeof(MyData));
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述两个重要的调用的方法是OnEnable()方法和OnGUI()方法,前者在窗口启动时调用,也就是初始化参数,后者是绘制的相关组件,我需要实时绘制,应该还需要Update()?

private void OnEnable()
    {
   
        
    }

    private void OnGUI()
    {
   
        
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

具体的内容之后再添加吧

功能分析

参考前面的数据图,完成任务需要的内容有
1.绘制xy轴
2.绘制数据点(折线)图
3.显示当前选定的(时间)上的点,显示数据
4.显示MAX,MIN,AVG,频率等一些信息
5.实时更新

XY轴

实质是两条箭头:
参考博客,比较简单

private void OnGUI()
    {
   
        //坐标轴绘制
        DrawArrow(new Vector2(_axisRect.xMin, _axisRect.yMax), new Vector2(_axisRect.xMin, _axisRect.yMin), Color.black);
        DrawArrow(new Vector2(_axisRect.xMin, _axisRect.yMax
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/100131
推荐阅读
相关标签
  

闽ICP备14008679号