private void OnNavigationNodeMoved(NavigationNodeEditorComponent l_movedNavigationNode) { SerializedNavigationNode l_updatedNode = NavigationGraphAsset.NavigationNodes[l_movedNavigationNode.GetSerializedNavigationNodeId()]; l_updatedNode.LocalPosition = l_movedNavigationNode.transform.localPosition; NavigationGraphAsset.NavigationNodes[l_movedNavigationNode.GetSerializedNavigationNodeId()] = l_updatedNode; EditorUtility.SetDirty(NavigationGraphAsset); }
private void OnNavigationNodeSelectionChanged(NavigationNodeEditorComponent l_selectionChangedNavigationnode, bool p_isSelected) { if (p_isSelected) { m_selectedNavigationNodeEditorComponents.Add(l_selectionChangedNavigationnode); } else { m_selectedNavigationNodeEditorComponents.Remove(l_selectionChangedNavigationnode); } }
public static NavigationNodeEditorComponent Instanciate(GameObject p_source, Transform p_parent, int p_serializedNavigationNodeId, SerializedNavigationNode p_serializedNavigationNode, NavigationGraphEditorComponent p_navigationGraphEditorReference, Action <NavigationNodeEditorComponent> p_onPositionChangedCallback, Action <NavigationNodeEditorComponent, bool> p_onSelectionChangedCallback) { GameObject l_instanciatedGameObject = GameObject.Instantiate(p_source); NavigationNodeEditorComponent thiz = l_instanciatedGameObject.AddComponent <NavigationNodeEditorComponent>(); thiz.gameObject.transform.parent = p_parent; thiz.m_lastFrameSelection = BoolVariable.New(false, (p_value) => { p_onSelectionChangedCallback(thiz, p_value); }, (p_value) => { p_onSelectionChangedCallback(thiz, p_value); }); thiz.m_serializedNavigationNodeId = p_serializedNavigationNodeId; thiz.m_positionChangedCallback = p_onPositionChangedCallback; thiz.transform.localPosition = p_serializedNavigationNode.LocalPosition; thiz.m_lastFrameLocalPosition = thiz.transform.localPosition; thiz.m_navigationGraphEditorReference = p_navigationGraphEditorReference; thiz.Tick(); return(thiz); }
private void InstanciatedNavigationNodes() { if (NavigationNodePrefab != null) { foreach (var l_navigationNodeEntry in NavigationGraphAsset.NavigationNodes) { m_instanciatedNavigationNodeEditorComponents.Add(l_navigationNodeEntry.Key, NavigationNodeEditorComponent.Instanciate(NavigationNodePrefab, m_NavigationNodeContainerGameObject.transform, l_navigationNodeEntry.Key, l_navigationNodeEntry.Value, this, OnNavigationNodeMoved, OnNavigationNodeSelectionChanged)); } } }