Unity记一次Amplify Shader Editor-编辑器扩展开发Canvas框架
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity记一次Amplify Shader Editor-编辑器扩展开发Canvas框架相关的知识,希望对你有一定的参考价值。
目录
代码初略分析
其实没有什么分析,要是有空,也可以出个图分析一下的
下面只是一些代码记录
也没什么好说的,代码不多,其中随便一个代码就6000行而已
框架源码入口
[MenuItem( "Window/Amplify Shader Editor/Open Canvas", false, 1000 )]
static void OpenMainShaderGraph()
{
if( IOUtils.AllOpenedWindows.Count > 0 )
{
AmplifyShaderEditorWindow currentWindow = CreateTab( "Empty", UIUtils.ShaderIcon );
UIUtils.CurrentWindow = currentWindow;
currentWindow.CreateNewGraph( "Empty" );
currentWindow.Show();
}
else
{
AmplifyShaderEditorWindow currentWindow = OpenWindow( "Empty", UIUtils.ShaderIcon );
currentWindow.CreateNewGraph( "Empty" );
//currentWindow.Show();
}
}
框架源码ONGUI
由于已经非常了解Editor,IMGUI,所以直接看ongui()
界面的这4个,还有其他区域分别对应 :
** | m_mainGraphInstance.Draw( |
m_modeWindow.Draw( | |
m_tipsWindow.Draw( | |
m_toolsWindow.Draw( | |
* | m_nodeParametersWindow.Draw( |
m_contextPalette.Draw( | |
m_nodeParametersWindow.Draw( |
框架源码 主绘制实例类
初始化
public void Reset()
{
if( m_mainGraphInstance == null )
{
m_mainGraphInstance = CreateInstance<ParentGraph>();
m_mainGraphInstance.Init();
m_mainGraphInstance.ParentWindow = this;
m_mainGraphInstance.SetGraphId( 0 );
}
m_mainGraphInstance.ResetEvents();
m_mainGraphInstance.OnNodeEvent += OnNodeStoppedMovingEvent;
m_mainGraphInstance.OnMaterialUpdatedEvent += OnMaterialUpdated;
m_mainGraphInstance.OnShaderUpdatedEvent += OnShaderUpdated;
m_mainGraphInstance.OnEmptyGraphDetectedEvt += OnEmptyGraphDetected;
m_mainGraphInstance.OnNodeRemovedEvent += m_toolsWindow.OnNodeRemovedFromGraph;
m_outdatedShaderFromTemplateLoaded = false;
GraphCount = 1;
FullCleanUndoStack();
m_performFullUndoRegister = true;
m_toolsWindow.BorderStyle = null;
m_selectionMode = ASESelectionMode.Shader;
ResetCameraSettings();
UIUtils.ResetMainSkin();
m_duplicatePreventionBuffer.ReleaseAllData();
if( m_genericMessageUI != null )
m_genericMessageUI.CleanUpMessageStack();
}
涉及引用
下面伪代码,不完全是该类或方法的实际命名
是否反向引用 | 类 | 方法 |
1 | EditorWindow | public Shader CreateNewGraph( string name ) |
暂停一下,晚上再补
参考:
Amplify Creations 公司,略屌
以上是关于Unity记一次Amplify Shader Editor-编辑器扩展开发Canvas框架的主要内容,如果未能解决你的问题,请参考以下文章
Unity记一次Amplify Shader Editor入门渲染案例中文解释——UV流动动画
Unity记一次Amplify Shader Editor入门渲染——ZTest,ZWrite,Cull Mode
Unity Amplify Shader Editor-编辑器扩展开发Canvas框架