当前位置:   article > 正文

【快速开发类TimeLine时间相关工具-Unity3D】_unity editor实现timeline

unity editor实现timeline

开发目标

快速开发类TimeLine插件,提升工具开发效率,将工作重心放到工具本身功能之上。不用花过多的精力编写基础时间轴功能。

基础功能描述

  1. 时间线绘制
  2. 播放控制
  3. 区域划分和绘制
  4. 帧、秒刻度切换
  5. Snap功能
  6. 拖动时间轴
  7. 缩放、扩大等【和Unity其他工具一样的快捷键和操作方式】可以体验下Unity本身的时间轴Ctrl+鼠标按键,Alt+鼠标按键+拖动

适用范围

  1. 技能编辑器
  2. 动画预览编辑器
  3. 非线编工具编辑器
  4. 时间相关工具开发

如何使用

克隆/下载工程,Window->ExampleTimeLineWindow即可打开查看基础时间轴窗口即可,
继承SimpleTimeArea,根据需求绘制窗口即可,** 一般开发复杂的工具,最好前期做好页面布局的规划,Top,Left,Top-Top,Bottom,Right,Right-Bottom等等如何划分,能够快速规划自己的编辑器的同时,逻辑不会混乱。**

Unity编辑器开发的重要思路

  1. 区域划分
  2. 区域功能独立
  3. 善用反射,有些功能是通过反射可以直接拿到不用单独实现
  4. 善于查看Unity的文档和编辑器源码【UnityC#代码早已经开源,如果发现Unity的某个窗口或者模块的编辑器能够参考,直接找到源码看下Unity官方如何实现的即可】
  5. 注重功能本身,提高易用性和间接性,易扩展
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using DMTimeArea;
using System;

public class ExampleTimeLine : SimpleTimeArea
{
    private Rect rectTotalArea;
    private Rect rectContent;
    private Rect rectTimeRuler;

    private Rect rectTopBar;
    private Rect rectLeft;
    public Rect rectLeftTopToolBar;

    private void OnGUI()
    {
    	// 
    }


    protected override void DrawVerticalTickLine()
    {
    	// 
    }

    protected virtual void DrawLeftContent()
    {
    	//
    }

    protected virtual void DrawTopToolBar()
    {
    	//
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

效果展示

ExampleTimeLineWindow

非线编时间轴工具,代码未包含

开源地址

GitHub地址
如果对你有所帮助,希望Star支持,谢谢~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/95457
推荐阅读
相关标签
  

闽ICP备14008679号