Unity Amplify Shader Editor-编辑器扩展开发Canvas框架
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity Amplify Shader Editor-编辑器扩展开发Canvas框架相关的知识,希望对你有一定的参考价值。
目录
Amplify实现框架详细
如图,小惊喜啊,居然移植过来了
====================
虽然还缺了很多功能
虽然还很多附加了的静态变量
虽然还做了一个转换器DevHelper
===================
详细的明天才弄了
惊喜啊,整个Amplify的代码基础api都几乎搞定了
蓝图还远吗?
整体规划
(还缺挺多东西呢)
基础node - canvas 功能
工具栏
Redo/Undo
红点逻辑
Ui动画
Ui特效
鼠标事件
public double CalculateInactivityTime()
{
double currTime = EditorApplication.timeSinceStartup;
switch( Event.current.type )
{
case EventType.MouseDown:
case EventType.MouseUp:
case EventType.MouseMove:
case EventType.MouseDrag:
case EventType.KeyDown:
case EventType.KeyUp:
case EventType.ScrollWheel:
case EventType.DragUpdated:
case EventType.DragPerform:
case EventType.DragExited:
case EventType.ValidateCommand:
case EventType.ExecuteCommand:
{
m_inactivityTime = currTime;
return 0;
}
}
return currTime - m_inactivityTime;
}
canvas
node操作
title颜色
m_headerColor = UIUtils.GetColorFromCategory( m_nodeAttribs.Category );
添加节点
protected override void CommonInit(int uniqueId)
{
base.CommonInit(uniqueId);
AddOutputVectorPorts( WirePortDataType.FLOAT4, "Out" );
}
属性方法
System.Reflection.MemberInfo info = this.GetType();
m_nodeAttribs = info.GetCustomAttributes( true )[ 0 ] as NodeAttributes;
[NodeAttributes( "Node Funiture", "Vertex Data", "Self NodeFuniture" )]
public class NodeFuniture:ParentNode
{
连线
玩了大半个小时的源码,算是整明白了
通过ParentGraph.DrawWires()绘制的连线
有一个必须支持的条件是:由于是ParentGraph的内部方法,所以当线往外移动时,又必须Resize ParentGraph
以上是关于Unity Amplify Shader Editor-编辑器扩展开发Canvas框架的主要内容,如果未能解决你的问题,请参考以下文章
Shader Graph 和 Amplify Shader Editor 节点文档地址
Unity记一次Amplify Shader Editor-编辑器扩展开发Canvas框架
Unity记一次Amplify Shader Editor入门渲染案例中文解释——UV流动动画