快速开发类TimeLine时间相关工具-Unity3D
目录
【快速开发类TimeLine时间相关工具-Unity3D】
开发目标
快速开发类TimeLine插件,提升工具开发效率,将工作重心放到工具本身功能之上。不用花过多的精力编写基础时间轴功能。
基础功能描述
- 时间线绘制
- 播放控制
- 区域划分和绘制
- 帧、秒刻度切换
- Snap功能
- 拖动时间轴
- 缩放、扩大等【和Unity其他工具一样的快捷键和操作方式】可以体验下Unity本身的时间轴Ctrl+鼠标按键,Alt+鼠标按键+拖动
适用范围
- 技能编辑器
- 动画预览编辑器
- 非线编工具编辑器
- 时间相关工具开发
- …
如何使用
克隆/下载工程,Window->ExampleTimeLineWindow即可打开查看基础时间轴窗口即可,
继承SimpleTimeArea,根据需求绘制窗口即可,** 一般开发复杂的工具,最好前期做好页面布局的规划,Top,Left,Top-Top,Bottom,Right,Right-Bottom等等如何划分,能够快速规划自己的编辑器的同时,逻辑不会混乱。**
Unity编辑器开发的重要思路
- 区域划分
- 区域功能独立
- 善用反射,有些功能是通过反射可以直接拿到不用单独实现
- 善于查看Unity的文档和编辑器源码【UnityC#代码早已经开源,如果发现Unity的某个窗口或者模块的编辑器能够参考,直接找到源码看下Unity官方如何实现的即可】
- 注重功能本身,提高易用性和间接性,易扩展
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()
{
//
}
效果展示
开源地址
如果对你有所帮助,希望 Star 支持,谢谢~