Unity Remote Inspector Kullanımı

Yayınlandı: 24 Mayıs 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Yeniden merhabalar,

Bu kısa derste, Unity 3D için ücretsiz Remote Inspector asset’ini tanıtacağım. Bu asset sayesinde, build aldığınız bir oyunu cihazda test ederken, oyunun Inspector ve Hierarchy‘sine Unity editöründen erişip anlık değişiklikler yapabilirsiniz. Örneğin sahnedeki objeleri kapatıp açabilir veya istediğiniz bir component’in değişkenlerine müdahale edebilirsiniz. Oyununuzu debug ederken veya performansı etkileyen objeleri deneme-yanılma yoluyla bulurken bu asset işinize yarayabilir.

Hazırsanız başlayalım!

Remote Inspector’u Asset Store’dan edinebilirsiniz: https://assetstore.unity.com/packages/tools/utilities/using-theirs-remote-inspector-130374

Asset’in çalışabilmesi için, oyunun ilk sahnesine RemoteInspector/Prefabs/RemoteInspectorServer objesini eklemeniz yeterli. Ardından oyununuzu build alıp çalıştırabilirsiniz.

Cihazda çalışmakta olan oyununuza Remote Inspector ile bağlanmak için, Window-Using Theirs-Remote Inspector menüsünden hem Remote Inspector hem de Remote Hierarchy pencerelerini açın (Using Theirs’ı Window menüsünün en tepelerinde bulabilirsiniz):

Burada kırmızı daire ile gösterdiğim yere, cihaza bağlanmak için gerekli IP adresini girmeniz gerekli. Bu IP adresini şu şekilde bulabilirsiniz:

  • Windows: localhost:8080
  • Android (USB kablo ile): Android SDK’yı kurduğunuz konumdaki platform-tools klasörünü açıp, klavyeden Shift tuşuna basılı tutarken ve hiçbir dosya seçili değilken klasörde boş bir yere sağ tıklayın ve “Komut penceresini burada aç” seçeneğini seçin (Windows 10’da PowerShell penceresini buradan açın):

Gelen komut penceresine “.\adb forward tcp:8080 tcp:8080” (tırnaksız) yazıp Enter’a basın. Ardından aynı pencereye “.\adb forward --list” yazıp Enter’a basın. Komut penceresine şuna benzer bir satır basıldıysa işlem tamamdır: “1515fa33f65c3282 tcp:8080 tcp:8080“. IP adresiniz: localhost:8080

  • Android (Wi-Fi ile): bu yöntem için bilgisayarınız ile Android cihazınız aynı Wi-Fi ağına bağlı olmalı. Ardından Android cihazınızın yerel IP adresini bulmanız lazım. Bu değeri genelde Ayarlar-Telefon hakkında penceresinde veya Ayarlar-Telefon hakkında-Durum penceresinde bulabilirsiniz (sizde gözükmüyorsa, google’da “android ip öğrenme” şeklinde arama yaparak alternatif yöntemler bulabilirsiniz). Diyelim IP adresiniz 192.168.1.75 ise, Remote Hierarchy’e yazmanız gereken IP adresi şu: http://192.168.1.75:8080

NOT1: IP adresinizdeki :8080‘den sonra / işareti koymayın!

NOT2: cihazınızın IP adresinin doğruluğunu kontrol etmek için, bu IP adresini internet tarayıcınıza girebilirsiniz. IP adresi doğruysa ve oyun cihazda çalışmakta ise, şöyle bir sayfa göreceksiniz:

Cihazınızın IP adresini bulup Remote Hierarchy’e girdikten sonra, hemen sağındaki Refresh butonuna tıklayın. Kısa bir süre içerisinde, Remote Hierarchy oyunun Hierarchy’sini gösterecek. Buradan bir objeye tıklayarak da o objenin Inspector’unu görebilirsiniz:

Remote Inspector editör script’lerini desteklemediği için, Remote Inspector ile normal Inspector’un görünümleri biraz farklı olacak, ancak bu büyük bir sıkıntı olmamalı.

Normal Inspector’da Position’ın X değerini değiştirmek için, X yazısına basılı tutup fareyi hareket ettirebiliyoruz. Maalesef bu yöntem Remote Inspector’da düzgün çalışmıyor, o yüzden diyelim Transform’un position’ının y değerini 5 yapacaksanız, bu 5 değerini ilgili kutucuğa elle girmenizi öneririm.

Faydalı olması dileğiyle!

yorum
  1. destekverblog dedi ki:

    hocam özür dilerim rahatsız ediyorum 😀
    yani belki bilginiz vardır diye yine de söylemek istedim (fazla uzun değil. Tahminimce kaçırdığım detay var)

    Oyun : 2D Stickman oyunu (mobil için)
    Hocam fotoğraflarda gördüğünüz gibi, joystick ekledim, hareket ederken düşman karakterine yaklaştığın da (hareket halinde iken)
    attack tuşları ve animasyonları çalışmıyor. (Joystiği bıraktığım da çalışıyor.) Kodlarda ufak hata vardır diye tahmin ediyorum.
    Attack kodlarında vs hiçbir sorun yok. Eskiden 2 sağ ve sol buton vardı. Onun yerine joystick ile değiştirdiğim için yapamadım.

    (olması gereken : Joystick ile hareket ettiğim de (hala hareket halindeyken) örnek A tuşuna bastığım da, yerinde sabit kalıp gerekli dövüş hareketleri uygulaması gerekiyor. (Normal de joystiği bıraktığım da tabi ki çalışıyor :D) – )
    joystick kodunda bir sorun var sanırım hocam. Bi el atarsınız – emeğe değer bir oyun yemin edebilirim ki önemli bir proje (ücret bıraktırmadılar 🙂

    Joystick Fotoğrafı
    Joystick Kodları (önemli olan kısım sanırım burası)
    örnek olarak A tuşun Attack kodu

    • yasirkula dedi ki:

      Attack fonksiyonundan mecburen !move koşulunu silmeniz gerekecek. FixedUpdate’te ise if koşulunu (moveInput > 0 || moveInput < 0 || hittingNow) olarak değiştirmeyi deneyebilirsiniz.

  2. Minnettar :) dedi ki:

    Hocam unityde oyun kapanınca süre ilerlemesi nasıl yapılabilir. Mesela can sistemi var. Canlar 1 saatte doluyor ama kullanıcı oyunu kapattı 1 saat sonra girdiğinde canların dolu olması gerekiyor. Candy crush gibi oyunlardaki sistem yani. Teşekkür ederim. Bayramınız kutlu olsun.

  3. Bakarsanız Çok Memnun Olurum dedi ki:

    Hocam uygulamalarda siyah bar içerisinde bildirim tarzı yazılar yazıyorlar, acaba onu unityde nasıl yapabiliriz. Ornek olarak bir resim çizdim umarım anlasılır. https://hizliresim.com/XLgKOb ,ilgili çubuk çıkıp 1-2 saniye sonra kayboluyor.

  4. destekverblog dedi ki:

    Hocam sitenizde “Interactable” hakkında 1 konu bile görmedim.

    Bir butona tıklandığında (örnek next level) belirlemek istediğim bir butonun “Interactable” ‘nın açılmasıını istiyorum.(save’li) Elinizde böyle bir kod var mı acaba 😀
    https://hizliresim.com/ZSToOe (internetteki level lock sistemi projeyi zorluyor. Aşırı profesyonellik isteyen birşey gibi – Kısa mantık olarak bir buton a tıklandığın da sadece interactable nin açılması)

    2. soru olarak : bu tür soruları sorduğumuz da sizi rahatsız ediyor muyuz acaba?

  5. destekverblog dedi ki:

    müsait bi zaman da mail adresinizi kontrol edebilir misiniz? (:

  6. destekverblog dedi ki:

    selamlar yasir. Uğtaştırmak istemiyorum ancak size basit gelebilecek bir istekte bulunmak istiyorum.

    sahne indexi : ( 1 , 2 )

    bu sahne indexlerine göre bir script arıyorum
    Elimde bir ana menü müziği var. 1 ve 2 index arası kesintisiz çalmasını istiyorum (sadece 1 ve 2)

    Elinizde böyle bir script varmıdır acaba , gerçekten de zamanınız varsa scripti yazip atabilirmisiniz 😀
    (kusura bakmayın hocam acemiyim ama bunun faydası çok dokunacak güvenebilirsiniz)

    – kısacası : 1 ve 2 sahneler arası müzik oynatıcısı oluşturacağım. (mesela 1. sahneden 2. sahneye geçiş anında müziğin tekrar oynamaması gerekiyor. Kesintisiz müziğin devam etmesi gerekiyor.)

    umarım anlatmışımdır, cevap yazdığınızda kontrol ediyor olacağım , kolay gelsin şimdiden.

    • yasirkula dedi ki:

      Şu dersin en sonundaki SingletonMuzik script’i işinize yarayabilir: https://yasirkula.com/2014/08/03/unityde-bir-objenin-sahneler-arasi-gecislerde-yok-olmasini-onlemek-singleton-prensibi/. Oradaki scene.name == "AnaMenu" yerine siz scene.buildIndex != 1 && scene.buildIndex != 2 yazabilirsiniz.

      • destekverblog dedi ki:

        dönüş yaptığınız için teşekkür ederim.
        0,1,2 sahneler arası ilk başlangıçta sorunsuz çalışıyor.

        Ancak 3,4,5,6,7 sahnelere geçiş yaptığım an, ilk seferde o müzik oynatıcısı çıkmıyor. 2. seferde çıkıyor ama, (3,4,5,6,7) sahnelerde müzik oynatıcısı normal de bulunuyor sadece sahneye özel.

        İşte tam o an böyle bir hata da çıkıyor :
        kod
        hata

        kısaca : kod sorunsuz çalışıyor, ancak 3,4,5,6,7 sahnelere 2. kez girdiğim de o sahneden de müzik devam ediyor ve main menüye döndüğümde üst üste 2 kez müzik çalıyor 🙂
        (sadece 0,1,2 sahnelerde müzik çalacak şekilde ayarladim söylediğiniz gibi)
        Küçük bir eksik var sanırım

      • yasirkula dedi ki:

        Şu fonksiyonu ekleyince düzeliyor mu:

        void OnDestroy()
        {
        SceneManager.sceneLoaded -= SahneYuklendi;
        }

      • destekverblog dedi ki:

        Allah daima sizin gibileri başımızdan eksik etmesin. Çok teşekkür ederim (Ücretsiz destek verdiğiniz içinde)

      • yasirkula dedi ki:

        Estağfurullah, rica ederim.

  7. Berk Uçmaz dedi ki:

    hocam bilgisayardan yani bluestack üzerinden bunu kullanmaya çalısıyorum ama ip kısmına bilgisyar ip sini yazdıgımda hata alıyorum

  8. Using Theirs dedi ki:

    Thank you for your tutorial! Although I read the auto-translated page, your writing seems to be concise and informative. I will apply your feedback to the next update.

Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.