Exemple #1
0
		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 ) ):
					}
				}
			}
		}
Exemple #2
0
		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:
		}
Exemple #3
0
		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:
				}
			}
		}
Exemple #4
0
		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():
				}
			}
		}