关闭

Unity 曲线编辑扩展菜单功能

标签: unity扩展
1880人阅读 评论(0) 收藏 举报
分类:

Unity AnimationCurvePopupMenu

Unity 曲线编辑扩展菜单功能

原因

默认的 AnimationCurve 字段曲线编辑,不支持复制粘贴到另一个 AnimationCurve 字段,亦不支持关键帧的清空。所以扩展 AnimationCurve 的绘制,在右侧添加下拉菜单,以扩展功能。

功能

  • 复制曲线
  • 粘贴曲线
  • 清空曲线

截图

点击右侧下拉按钮,点击 Copy 复制:

在另一个曲线,右侧菜单点击 Paste 粘贴:

清空曲线的关键帧值,点击 Clear 清空:

使用说明

代码放进工程里面,对于默认的脚本,会自动调用扩展的曲线绘制方式:
默认的脚本类似:

public class TestCurve : MonoBehaviour
{
    public AnimationCurve curve;
}

高级方式,要对默认脚本进行自定义绘制的话,创建 Editor 类。接着,对于属性值,调用 Unity 自带的接口 EditorGUILayout.PropertyField 即可。对于非属性值,可通过 AnimationCurveGUI 接口来替换 EditorGUILayout 和 EditorGUI 来绘制曲线:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(TestCurve))]
public class TestCurveEditor : Editor
{
    private SerializedProperty curveProp;
    private AnimationCurve m_TestAnimCurve = new AnimationCurve();

    void OnEnable()
    {
        curveProp = serializedObject.FindProperty("curve");
    }

    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUILayout.PropertyField(curveProp);
        m_TestAnimCurve = AnimationCurveGUI.CurveField("扩展曲线", m_TestAnimCurve);

        serializedObject.ApplyModifiedProperties();
    }
}

GitHub地址:https://github.com/akof1314/UnityAnimationCurvePopupMenu

0
0
查看评论

【Unity3d开发记录】Unity动态画曲线、弧线(GL画线)在UI上的显示

开发过程中遇到了一个问题,在UI上动态画弧线,花了一天的时间,终于解决了,拿来和大家分享一下(个人场景里只有UI)。 我才用的动态画线的方法是GL画线,有一定的性能开销,unity版本5.3.2.。 GL画线是直接显示在屏幕上的,我想用GL画出UI上一个点的运动轨迹,经过尝试终于实现,首先是...
  • liuleitheone
  • liuleitheone
  • 2016-04-28 07:59
  • 8119

Unity 曲线编辑器说明

曲线编辑器 曲线有许多不同的用途,在 Unity 中有一些使用可编辑曲线的不同控件。文档地址:https://docs.unity3d.com/Manual/EditingCurves.html 曲线上添加和移动键 双击曲线上键 (key) 应放置的点可将键 (key)&...
  • akof1314
  • akof1314
  • 2016-06-30 09:26
  • 5096

Unity教程之-Unity3d游戏中自定义贝塞尔曲线编辑器

关于贝塞尔曲线曲线我们再前面的文章提到过《Unity教程之-在Unity3d中使用贝塞尔曲线》,那么本篇文章我们来深入学习下,并自定义实现贝塞尔曲线编辑器,贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流...
  • andyhebear
  • andyhebear
  • 2016-01-08 12:00
  • 1895

Unity3D教你制作Bezier和Spine曲线编辑器三

继续接着介绍曲线编辑器的制作,上篇博客介绍了关于Bezier曲线的制作,接下来给读者介绍Spine B样条曲线之作。 如果要创建复杂的曲线,我们需要连接多个曲线,这样的构造称为样条。让我们通过复制Bezier曲线代码来创建一个,将类型更改为BezierSpline。 using UnityEngin...
  • jxw167
  • jxw167
  • 2017-09-04 13:56
  • 1106

Unity之Animation编辑器编辑动画

Unity提供了Animation编辑器,它可以为我们编辑物理动画。举个例子比如场景中有一个来回摇动的秋千,这个秋千在项目中完全只起到衬托作用,它不会与别的游戏对象有任何交互。如果这个秋千也用代码来写控制它来回摇动,会感觉小题大做。此时完全可以使用Animation编辑器来完成。但是它目前还不能编辑...
  • oSKyTonight
  • oSKyTonight
  • 2014-08-15 12:13
  • 10666

Unity3D教你制作Bezier和Spine曲线编辑器一

以前做端游编辑器时,制作过曲线编辑器,现在使用Unity3D编程,Unity3D为我们提供了很多组件,但是在项目开发中,我们可能只需要某个小功能,但是要把整个组件加到项目中,一旦需求变换,修改起来比较麻烦,鉴于这些原因,我们自己手动做一个曲线编辑器利用Unity3D。曲线编辑器的主要功能包括:1.创...
  • jxw167
  • jxw167
  • 2017-08-30 16:41
  • 2654

Unity 贝塞尔曲线编辑器

  • 2017-08-14 00:16
  • 68KB
  • 下载

Unity3d对于AnimationCurve的相关研究

对于AnimationCurve的相关研究最近在写手游的过程中,需要用到AnimationCurve来完成3d卡片的动态移动缩放,所以对AnimationCurve有所研究,通过查阅官方文档终于找到一些可以用上的相关方法。 如何用代码写出曲线 键序列的相关设置 曲线的使用方法 对于Animation...
  • CSDN_xin_L
  • CSDN_xin_L
  • 2016-07-11 17:23
  • 1238

在Editor模式下编辑贝塞尔曲线

贝塞尔曲线的原理以及具体实现方式在网上随处可见,这里不再赘述。实际上,在Unity的Editor模式下,系统已经提供了现成的接口,只需要简单的几行代码,便能实现可自由拖曳的贝塞尔曲线。 首先,创建一个Bezier.cs文件,具体代码如下: //将代码添加至任意GameObject即可 using ...
  • mlkmx
  • mlkmx
  • 2016-05-06 15:31
  • 1082

Unity编辑器扩展-菜单项

[TOC] Unity编辑器允许你去添加像内置菜单一样外观和行为的自定义菜单。自定义菜单对于那些经常使用的功能提供一种能从编辑器直接访问的便捷方式。在这一课程中我将对每个描述的主题提供真实的使用示例,用于说明在unity中的菜单项是如何创建和使用的。 添加菜单项 为了要在顶层工具栏中创建一...
  • zw514159799
  • zw514159799
  • 2016-03-08 17:54
  • 10632
    个人资料
    • 访问:3556286次
    • 积分:36084
    • 等级:
    • 排名:第136名
    • 原创:402篇
    • 转载:88篇
    • 译文:5篇
    • 评论:3425条
    个人说明
    联系方式:
    文章存档
    最新评论