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!
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
Attack fonksiyonundan mecburen !move koşulunu silmeniz gerekecek. FixedUpdate’te ise if koşulunu (moveInput > 0 || moveInput < 0 || hittingNow) olarak değiştirmeyi deneyebilirsiniz.
cevabiniz için teşekkürler
hocam yürüme işlemi çalışırken(joystiği hareket ettiğim de), A tuşuna bastiğim da yumruk çalışıyor ancak yerinde sabit kalmıyor 🙂
(örnek : yumruk animasyonu bittiğinde tekrar yürümesi gerekiyor.)
Hocam yardımınıza ihtiyacım var (‘: (yazılım konusunda benim hatamdı kabul ediyorum.)
Eğer oyunun fotoğrafını istiyor saniz mail adresinizi yazmaniz yeterli
Bir de if’i ((moveInput > 0 || moveInput < 0) && !hittingNow) yapmayı deneyin.
hocam bu sefer çalıştı ama yavaş duraklama yapıyor. (karakter biraz kayıp, sonra duruyor.)
yürüme işlemi çalışıyorken (yani joystick), A tuşuna bastığımda karakter biraz kayıp duruyor.
Ben tekrardan kodları şöyle bıraktım :
önemli olan
diğer
ilk kod satırları
AttackA Yumruk olan
AttackC (örnek belki lazim olur)
hocam gerekirse bütün kodları atarım.Sizden dönüş bekliyorum. Teşekkür ederim.
Karakterin direkt durmasını istediğiniz yerlerde Rigidbody’sinin velocity değerini Vector3.zero yapmanız lazım.
valla hocam oyun 2D olduğu için hiç velocity yani vector3 ‘e hiç bulaşmadım bilmiyorum da 🙂
Player (ana karakter olan)
Zemin
Ama hocam facebook’ta baktım da bazıları “has exit time gibi bir şey onu kurcala” gibisinden sürekli cevap aldım. Acaba ondan mıdır?
Rigidbody2D’de de velocity var.
valla yeni fark ettim. Edit atılmıyor.
eğer edit atılırsa, hangi değerleri girmem gerekiyor acaba?
Onu koddan
rb.velocity = Vector2.zero;
yapacaksınız sadece.size ne kadar teşekkür etsem çok az. Hocam emin olabilirsiniz bu yaptığım proje çok önemli. Tekrardan teşekkür ederim ❤ (başkaları sırf bunun için 200-300tl istiyorlardı.)
Bize bu imkanı sunduğunuz için çok teşekkür ederiz.
Rica ederim. Projenizde başarılar.
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.
Bu yoruma ve bu yoruma bakabilirsiniz.
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.
fark ettim eğer tam anlaşılmazsa google play storede herhangi bir uygulamaya girip sag ustteki 3 noktadan baglantıyı kopyala seçerseniz aynı çubukta panoya kopyalandı olarak çıkıyor.
Şu dersime bakabilirsiniz: https://yasirkula.com/2015/10/14/unity-androide-eclipse-adt-ile-basit-bir-plugin-yazmak/
Teşekkür ederim hocam uzun bir süre bu mesajın adını aradım googleda meğerse toastmış 🙂 eksik olmayın
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?
Interactable’dan şurada bahsettim: https://yasirkula.com/2015/01/21/unity-ui-arayuz-sistemi/. Kod yazmadan istediğiniz şeyi yapabilirsiniz, bunun için butonun On Click event’ine öbür butonun “bool interactable” değişkenini ekleyip değerini true yapabilirsiniz.
Çok sık soru sorulmadığı sürece kolay kolay rahatsız olmuyorum 😛
müsait bi zaman da mail adresinizi kontrol edebilir misiniz? (:
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.
Ş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 sizscene.buildIndex != 1 && scene.buildIndex != 2
yazabilirsiniz.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
Şu fonksiyonu ekleyince düzeliyor mu:
void OnDestroy()
{
SceneManager.sceneLoaded -= SahneYuklendi;
}
Allah daima sizin gibileri başımızdan eksik etmesin. Çok teşekkür ederim (Ücretsiz destek verdiğiniz içinde)
Estağfurullah, rica ederim.
hocam bilgisayardan yani bluestack üzerinden bunu kullanmaya çalısıyorum ama ip kısmına bilgisyar ip sini yazdıgımda hata alıyorum
Android (USB kablo) yöntemini deneyebilirsiniz.
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.