示例#1
0
    public void OnDrop(PointerEventData eventData)
    {
        bool piezaJarriDaiteke = true;
        Drag pieza             = eventData.pointerDrag.GetComponent <Drag>();

        if (pieza != null)
        {
            if (pieza.piezaMota == Drag.mota.Izenburua)
            {
                return;
            }
            if (piezaMota == pieza.piezaMota || piezaMota == Drag.mota.Denak) // pieza hemen jarri daiteke
            {
                if (piezaBakarra)
                {
                    if (transform.childCount == 1) // badago pieza bat jarrita, aldatu
                    {
                        Transform piezaPos = transform.GetChild(0);
                        if (piezaPos.GetComponent <Drag>() != null)
                        {
                            if (piezaPos.GetComponent <Drag>().isActiveAndEnabled)
                            {
                                // jarrita dagoen pieza tokiz mugitu daiteke
                                piezaPos.SetParent(piezaTokia);
                                piezaPos.SetSiblingIndex(piezaTokia.childCount);
                                piezaJarriDaiteke = true;
                            }
                            else
                            {
                                // jarrita dagoen pieza ezin da mugitu
                                piezaJarriDaiteke = false;
                            }
                        }
                        else
                        {
                            //pieza guk sortutako hutsunea da, pieza tokian jarri
                            piezaJarriDaiteke = true;
                        }
                    }
                }
                if (goikoPieza != null && goikoPieza.parent == piezaTokia) // eskumaldean piezak ez muntatzeko // !!! pieza bakarra ez exekutatu
                {
                    pieza.transform.SetParent(pieza.GetPiezaGurasoa());
                    pieza.transform.SetSiblingIndex(pieza.GetHasierkoIndizea());
                }
                else
                {
                    //pieza.SetPiezaGurasoa(transform); // pieza hutsunean jarri
                    if (piezaJarriDaiteke)
                    {
                        PiezaTokianJarri(pieza);
                    }
                }
            }
            else // pieza toki okerren jarri da, datorren tokira itzuli
            {
                AudioManager.instantzia.Play("PiezaTxartoJarri");

                pieza.transform.SetParent(pieza.GetPiezaGurasoa());
                pieza.transform.SetSiblingIndex(pieza.GetHasierkoIndizea());
            }
        }
    }