コード例 #1
0
    public void Iniciar(LayoutCuarto inicial, GeneradorMapaArbol arbol)
    {
        this.arbol = arbol;
        categoria  = inicial.categoria;
        cuartosPropios.Add(inicial);
        arbol.Add(inicial, this);
        if (inicial.categoria == LayoutCuarto.Categoria.Peque)
        {
            AddRecursivo(inicial.pegadosFiltrados, arbol);
        }

        transform.position = Centro + Vector3.forward * transform.position.z;
    }
コード例 #2
0
 void AddRecursivo(List <LayoutCuarto> grupoInput, GeneradorMapaArbol arbol)
 {
     foreach (var cuarto in grupoInput)
     {
         if (cuarto.categoria == LayoutCuarto.Categoria.Peque)
         {
             if (!cuartosPropios.Contains(cuarto))
             {
                 cuartosPropios.Add(cuarto);
                 arbol.Add(cuarto, this);
                 AddRecursivo(cuarto.pegadosFiltrados, arbol);
             }
         }
     }
 }
コード例 #3
0
        public static void SceneGUIPorGen(GeneradorMapaArbol gen)
        {
            if (!gen.origen)
            {
                return;
            }
            int controlId = GUIUtility.GetControlID(FocusType.Passive);

            if (Event.current.type != EventType.MouseDown || Event.current.button != 0)
            {
                return;
            }
            var mouse = Event.current.mousePosition;
            var layer = gen.origen ? gen.origen.layerGenerador : 31;

            foreach (var cuarto in gen.origen.generados)
            {
                cuarto.Simulated = true;
            }

            foreach (var hit in Physics2D.GetRayIntersectionAll(UnityEditor.HandleUtility.GUIPointToWorldRay(mouse), Mathf.Infinity, 1 << layer))
            {
                if (hit)
                {
                    var cuarto = hit.collider.GetComponent <LayoutCuarto>();
                    if (cuarto && gen.arbol.ContainsKey(cuarto))
                    {
                        GUIUtility.hotControl = controlId;
                        Event.current.Use();
                        Selection.activeGameObject = gen.arbol[cuarto].gameObject;
                        // DrawNodoHandle(gen.arbol[cuarto],Color.cyan);
                        // foreach(var vecino in gen.arbol[cuarto].vecinos){
                        //     DrawNodoHandle(vecino,Color.yellow,0.99f);
                        //     Handles.DrawLine(gen.arbol[cuarto].Centro,vecino.Centro);
                        // }
                        // cuarto.OnDrawGizmosSelected();
                        break;
                    }
                }
            }

            foreach (var cuarto in gen.origen.generados)
            {
                cuarto.Simulated = false;
            }
        }