예제 #1
0
        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);
        }
예제 #2
0
 private void OnNavigationNodeSelectionChanged(NavigationNodeEditorComponent l_selectionChangedNavigationnode, bool p_isSelected)
 {
     if (p_isSelected)
     {
         m_selectedNavigationNodeEditorComponents.Add(l_selectionChangedNavigationnode);
     }
     else
     {
         m_selectedNavigationNodeEditorComponents.Remove(l_selectionChangedNavigationnode);
     }
 }
예제 #3
0
        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);
        }
예제 #4
0
 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));
         }
     }
 }