private void OnNavigationNodeLinkRemoved(NavigationNodeEditorComponentLink p_NavigationNodeEditorComponentLink) { for (int i = 0; i < m_navigationGraphEditorReference.NavigationGraphAsset.NavigationLinks.Count; i++) { SerializedNavigationLink l_serializedNavigationLink = m_navigationGraphEditorReference.NavigationGraphAsset.NavigationLinks[i]; if (l_serializedNavigationLink.StartNode == m_serializedNavigationNodeId && l_serializedNavigationLink.EndNode == p_NavigationNodeEditorComponentLink.TargetNodeID) { m_navigationGraphEditorReference.NavigationGraphAsset.NavigationLinks.RemoveAt(i); EditorUtility.SetDirty(m_navigationGraphEditorReference.NavigationGraphAsset); RefreshLinks(); break; } } }
private void RefreshLinks() { if (m_lastFrameSelection.Get()) { NavigationNodeEditorComponentLinks.NavigationNodeEditorComponentLink.Clear(); for (int i = 0; i < m_navigationGraphEditorReference.NavigationGraphAsset.NavigationLinks.Count; i++) { SerializedNavigationLink l_serializedNavigationLink = m_navigationGraphEditorReference.NavigationGraphAsset.NavigationLinks[i]; if (l_serializedNavigationLink.StartNode == m_serializedNavigationNodeId) { NavigationNodeEditorComponentLinks.NavigationNodeEditorComponentLink.Add(NavigationNodeEditorComponentLink.New(l_serializedNavigationLink.EndNode, OnNavigationNodeLinkRemoved)); } } } }