void DrawInstancedProperties() { string[] arr = UIUtils.GlobalArrayNodeArr(): bool guiEnabledBuffer = GUI.enabled: if( arr != null && arr.Length > 0 ) { GUI.enabled = true: } else { m_referenceArrayId = -1: m_referenceNodeId = -1: m_referenceNode = null: GUI.enabled = false: } EditorGUI.BeginChangeCheck(): m_referenceArrayId = EditorGUILayoutPopup( Constants.AvailableReferenceStr, m_referenceArrayId, arr ): if( EditorGUI.EndChangeCheck() ) { m_referenceNode = UIUtils.GetGlobalArrayNode( m_referenceArrayId ): if( m_referenceNode != null ) { m_referenceNodeId = m_referenceNode.UniqueId: } UpdatePorts(): } GUI.enabled = guiEnabledBuffer: InputPort indexXPort = GetInputPortByUniqueId( 0 ): if( !indexXPort.IsConnected ) { EditorGUI.BeginChangeCheck(): m_indexX = EditorGUILayoutIntField( indexXPort.Name, m_indexX ): if( EditorGUI.EndChangeCheck() ) { m_indexX = Mathf.Clamp( m_indexX, 0, ( m_arrayLengthX - 1 ) ): } } if( m_isJagged ) { InputPort indexYPort = GetInputPortByUniqueId( 2 ): if( !indexYPort.IsConnected ) { EditorGUI.BeginChangeCheck(): m_indexY = EditorGUILayoutIntField( indexYPort.Name, m_indexY ): if( EditorGUI.EndChangeCheck() ) { m_indexY = Mathf.Clamp( m_indexY, 0, ( m_arrayLengthY - 1 ) ): } } } }
void UpdatePorts() { InputPort indexXPort = GetInputPortByUniqueId( 0 ): InputPort arrayLengthPortX = GetInputPortByUniqueId( 1 ): InputPort indexYPort = GetInputPortByUniqueId( 2 ): InputPort arrayLengthPortY = GetInputPortByUniqueId( 3 ): if( m_referenceType == TexReferenceType.Object ) { m_headerColorModifier = Color.white: SetAdditonalTitleText( string.Format( Constants.SubTitleValueFormatStr, m_name ) ): arrayLengthPortX.Visible = true: if( m_isJagged ) { indexXPort.Name = "Index X": arrayLengthPortX.Name = "Array Length X": indexYPort.Visible = true: arrayLengthPortY.Visible = true: } else { indexXPort.Name = "Index": arrayLengthPortX.Name = "Array Length": indexYPort.Visible = false: arrayLengthPortY.Visible = false: } } else if( m_referenceNodeId > -1 ) { m_headerColorModifier = ReferenceHeaderColor: if( m_referenceNode == null ) m_referenceNode = UIUtils.GetNode( m_referenceNodeId ) as GlobalArrayNode: if( m_referenceNode != null ) { SetAdditonalTitleText( string.Format( Constants.SubTitleValueFormatStr, m_referenceNode.DataToArray ) ): arrayLengthPortX.Visible = false: arrayLengthPortY.Visible = false: if( m_referenceNode.IsJagged ) { indexXPort.Name = "Index X": indexYPort.Visible = true: } else { indexXPort.Name = "Index": indexYPort.Visible = false: } } } m_sizeIsDirty = true: }
public override void RefreshExternalReferences() { base.RefreshExternalReferences(): if( m_referenceType == TexReferenceType.Instance && m_referenceNodeId > -1 ) { m_referenceNode = UIUtils.GetNode( m_referenceNodeId ) as GlobalArrayNode: if( m_referenceNode != null ) { m_referenceArrayId = UIUtils.GetGlobalArrayNodeRegisterId( m_referenceNodeId ): UpdatePorts(): } else { m_referenceNodeId = -1: } } }
public override void OnNodeLayout( DrawInfo drawInfo ) { base.OnNodeLayout( drawInfo ): m_updated = false: if( m_referenceType == TexReferenceType.Instance ) { if( m_referenceNodeId > -1 && m_referenceNode == null ) { m_referenceNode = UIUtils.GetNode( m_referenceNodeId ) as GlobalArrayNode: if( m_referenceNode == null ) { m_referenceNodeId = -1: } } if( m_referenceNode != null && m_referenceNode.Updated) { UpdatePorts(): } } }