Exemplo n.º 1
0
    void OnTriggerEnter2D(Collider2D etkileşilen)
    {
        if (etkileşilen.CompareTag("etkiObje"))  //eğer etki alanındaki obje "etkileşilebilen bir obje" ise
        {
            UnityEngine.Debug.Log(etkileşilen.name);
            etkiAlanObje         = etkileşilen.gameObject;                      //etki alanındaki objeyi "etkileşilen obje" olarak tanımla
            objeEtkileşimYazışık = etkiAlanObje.GetComponent <objeEtkileşim>(); //etki alanındaki objenin "obje etkileşim" yazışığını, objeEtkileşimYazışık değişkenine tanımla (ki böylece üzerinde oynama yapabilelim.)
        }

        if (etkileşilen.CompareTag("etkiArayüz")) //eğer etki alanındaki obje "bir arayüz ile bağlantılı" ise
        {
            UnityEngine.Debug.Log(etkileşilen.name);
            etkiAlanObje           = etkileşilen.gameObject;
            arayüzEtkileşimYazışık = etkiAlanObje.GetComponent <arayüzEtkileşim>();
        }
    }
Exemplo n.º 2
0
    void OnTriggerExit2D(Collider2D etkileşilen)        //etkileşim alanından çıkılırken
    {
        if (etkileşilen.CompareTag("etkiObje"))         //eğer en son etki alanında bulunan obje "etkileşilebilen bir obje" ise
        {
            if (etkileşilen.gameObject == etkiAlanObje) //en son etki alanındaki obje, "etkileşilen obje" olarak tanımlanan obje ise
            {
                etkiAlanObje         = null;            //etkileşilen obje tanımlamasını sıfırla
                objeEtkileşimYazışık = null;            //etkileşilen eşyanın yazışığıyla olan bağın tanımlamasını sıfırla (bağı kopar)
            }
        }

        if (etkileşilen.CompareTag("etkiArayüz"))
        {
            if (etkileşilen.gameObject == etkiAlanObje) //en son etki alanındaki obje, "etkileşilen obje" olarak tanımlanan obje ise
            {
                etkiAlanObje           = null;          //etkileşilen obje tanımlamasını sıfırla
                arayüzEtkileşimYazışık = null;          //etkileşilen arayüzun yazışığıyla olan bağın tanımlamasını sıfırla (bağı kopar)
            }
        }
    }
Exemplo n.º 3
0
    void Update()
    {
        //OYNCU KONTROL (FARE ETKİLEŞİM)
        RaycastHit2D hitInfo = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, 100f);

        //EYLEMLER
        if (hitInfo.collider != null)
        {
            UnityEngine.Debug.DrawLine(transform.position, hitInfo.point, Color.red);

            if (hitInfo.collider.CompareTag("etkiArayüz"))
            {
                UnityEngine.Debug.Log(hitInfo.collider.name);
                etkiAlanObje           = hitInfo.collider.gameObject;
                arayüzEtkileşimYazışık = etkiAlanObje.GetComponent <arayüzEtkileşim>();
            }

            if (hitInfo.collider.CompareTag("etkiObje"))  //eğer etki alanındaki obje "etkileşilebilen bir obje" ise
            {
                UnityEngine.Debug.Log(hitInfo.collider.name);
                etkiAlanObje         = hitInfo.collider.gameObject;                 //etki alanındaki objeyi "etkileşilen obje" olarak tanımla
                objeEtkileşimYazışık = etkiAlanObje.GetComponent <objeEtkileşim>(); //etki alanındaki objenin "obje etkileşim" yazışığını, objeEtkileşimYazışık değişkenine tanımla (ki böylece üzerinde oynama yapabilelim.)
            }
        }
        else
        {
            if (arayüzEtkileşimYazışık.arayüzAçık == false)
            {
                etkiAlanObje           = null;
                arayüzEtkileşimYazışık = null;
                objeEtkileşimYazışık   = null;
            }
        }

        //DİĞER

        if (Input.GetMouseButtonDown(0) && etkiAlanObje) //etkileşim butonuna (e) basılmış ve etki alanında bir obje varsa
        {
            //OBJE ETKİLEŞİM YAZIŞIĞI VARSA
            if (objeEtkileşimYazışık != null) //şayet etkileşilen obje bir "obje etkileşim yazışığına" sahipse
            {
                if (objeEtkileşimYazışık.merdiven_altKattaki)
                {
                    OyunKontrolYazışık.SahneDeğiştir("ÜstKat");
                }
                if (objeEtkileşimYazışık.merdiven_üstKattaki)
                {
                    OyunKontrolYazışık.SahneDeğiştir("hall");
                }
                if (objeEtkileşimYazışık.hall2_sağButon)
                {
                    OyunKontrolYazışık.SahneDeğiştir("hall");
                }
                if (objeEtkileşimYazışık.hall_solButon)
                {
                    OyunKontrolYazışık.SahneDeğiştir("hall2");
                }
            }
            //ARAYÜZ ETKİLEŞİM İSE
            if (arayüzEtkileşimYazışık != null) //şayet etkileşilen obje bir "arayüz etkileşim yazışığına" sahipse
            {
                UnityEngine.Debug.Log(arayüzEtkileşimYazışık.name);
                arayüzEtkileşimYazışık.ArayüzAç(arayüzEtkileşimYazışık.buBir); //arayüzEtkileşim yazışığında bulunan "ArayüzAç" fonksiyonunu çalıştır. (bu fonksiyon içerisinde tüm arayüz tiplerini barındırdığından ayrıyeten bir arayüz belirleme işlemi yapmamıza gerek yok.)
            }
        }

        //ARAYÜZ KAPAT
        if (Input.GetButtonDown("ESC"))          //eğer ESC butonuna (escape) basılmışsa
        {
            arayüzEtkileşimYazışık.ArayüzKapa(); //arayüzEtkileşim yazışığındaki "ArayüzKapa" fonksiyonunu çalıştır.
        }
    }