在Editor模式下编辑贝塞尔曲线
来源:互联网 发布:vb安装包 拆分 编辑:程序博客网 时间:2024/05/17 01:00
贝塞尔曲线的原理以及具体实现方式在网上随处可见,这里不再赘述。实际上,在Unity的Editor模式下,系统已经提供了现成的接口,只需要简单的几行代码,便能实现可自由拖曳的贝塞尔曲线。
其次,创建一个BezierEditor.cs文件,具体代码如下:
首先,创建一个Bezier.cs文件,具体代码如下:
//将代码添加至任意GameObject即可using UnityEngine;using System.Collections;public class Bezier : MonoBehaviour{ //起始于startPosition,走向于startTangent,并从endTangent来到终点endPosition public Vector3 startPosition = Vector3.zero; public Vector3 startTangent = Vector3.zero; public Vector3 endPosition = Vector3.zero; public Vector3 endTangent = Vector3.zero;}
其次,创建一个BezierEditor.cs文件,具体代码如下:
using UnityEngine;using UnityEditor;//CustomEditor即将该编辑代码附加在Bezier.cs上//当Bezier.cs绑定物体被选中时//该代码会运行[CustomEditor(typeof(Bezier))]public class BezierEditor : Editor{ private static Bezier bezier; //每次激活时会运行 void OnEnable() { //target表示目前inspector内显示物体 bezier = target as Bezier; } void OnSceneGUI() { //创建一个可自由拖曳的点 bezier.startPosition = Handles.PositionHandle(bezier.startPosition, Quaternion.identity); //创建一个可自由拖曳的控制轴,这里可以把其当成Tangent,即切线 bezier.startTangent = Handles.FreeMoveHandle(bezier.startTangent, Quaternion.identity, 1F, Vector3.zero, Handles.SphereCap); //这里画条线是为了更加直观表示 Handles.DrawLine(bezier.startPosition, bezier.startTangent); bezier.endPosition = Handles.PositionHandle(bezier.endPosition, Quaternion.identity); bezier.endTangent = Handles.FreeMoveHandle(bezier.endTangent, Quaternion.identity, 1F, Vector3.zero, Handles.SphereCap); Handles.DrawLine(bezier.endPosition, bezier.endTangent); Handles.DrawBezier(bezier.startPosition, bezier.endPosition, bezier.startTangent, bezier.endTangent, Color.green, null, 10F); }}
具体结果如下图:
如此,就可以自由操作一条贝塞尔曲线啦,很方便吧。
0 0
- 在Editor模式下编辑贝塞尔曲线
- easyui datagrid editor在编辑状态下更新列值并不结束编辑。
- 在Page Editor模式下添加自定义按钮
- Unity在Editor模式下查看Shader动态效果
- WebBrowser:在Windows7下编辑模式失效
- 在dataGrid编辑模式下设置控件大小
- 判断是否运行在VB IDE编辑模式下
- csdn在markdown编辑模式下如何去掉图片水印
- quill-editor 在ios下editor不能够聚焦输入
- 在eclipse3.4下安装visual editor
- 在eclipse下安装freemarker editor插件
- Maya: 菜单 编辑NURBS >在曲面上投影曲线
- Symbian Editor 无法编辑
- 编辑选择对象Editor
- Editor编辑Inspector界面
- Maya: 菜单 编辑曲线 >曲线编辑工具
- 在Linux系统下Vi命令模式和编辑模式进行切换
- 在Linux系统下,Vi命令模式和编辑模式如何切换?
- VisualSVN Server提交前必须写信息(备注)
- hdu 4936 Rainbow Island (状压dp+高斯消元)
- Handler初体验
- hoj2543 Stone IV 【最小费用最大流】
- 常见浏览器兼容性问题与解决方案
- 在Editor模式下编辑贝塞尔曲线
- Linux内核模块编程——hello,world
- [javase]多线程(三)
- 如何删除保存在Mac 上的密码
- spark/hadoop整合mongodb
- Ubuntu 14 .04 下安装Gitlab
- Java相对路径读取文件
- mysql source导入多个sql文件和较大文件及在线互转
- Laravel5框架的搭建