Unity C# öğrenemiyorum

Ponstaneforte

Kilopat
Katılım
24 Kasım 2016
Mesajlar
1.102
Makaleler
2
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
YouTube üzerinde ki kaynaklar işe yaramaz diye Udemy üzerinden kurs satın aldım. Sıfırdan Pro seviyeye diyordu. İlk başlarda hakikaten öyleydi ama Unity Class fonksiyonuna gelince cartayı çekti. Void diye bir şey yazdı Class dediği şeyin içine. Zaten bunlar metod mudur, fonksiyon mudur ne olduğunu anlamadım. Bir süre sonra yan pencerede yeni CS oluşturdu. MonoBehaviour denen şeyden o CS'yi çağırdı herhalde. Bu da hiçbir şey anlamadığım karmaşık diğer çöp kurslara döndü. Bu bahsettiğim kurs Udemy üzerinde ki en iyi ve en pahalı Türkçe kurs. Benim bu Unity'i öğrenmem lazım arkadaşlar. Ne yapmalıyım ne tavsiye edersiniz. Türkçe kaynaklar kıt sanırım. Hocalar bile bilmiyor neyin ne olduğunu kurs satıyorlar yorumları da çekemiyorlar.
 
Son düzenleyen: Moderatör:
Yazılım dili ve oyun motorlari kurs izleyerek değil makale okuyarak ve deneyerek öğrenilir. Türkçe kaynak istiyorsan çok az ve Türkçe kimsenin umrunda olmayan bir dil. İngilizce bilmiyorsan istersen en pahalı hocadan bizzat ders al, bir şeyi hatırlayamadığında donar kalırsın çünkü her şeyin Türkçe makalesi yok. Sanma ki yazılımcılar CV'sine yazdığı dilleri ve programları takır takır kullanabiliyor. Çoğunluğu bir şeyi hatırlayamadığında İngilizce araştırma yaparak makalesini bulup okuyor. Bu şekilde gelişirsin zaten, sadece kurs izleyerek Unity öğrenen görmedim ben.
 
class => sınıf
void fonksiyonadi => metod
int, float, double fonksiyonadi =>metod

eğer fonksiyon değer döndürecekse (return edecekse) başına döndüreceği değişkenin tipini alır. Örneğin a sayısı ile b sayısını toplayan bir fonksiyon yazalım. Bu fonksiyondan dönen değeri main fonksiyonunda yazdıralım.

C++:
int ToplamaFonksiyonu(int a, int b)
{
int toplam = a+b;
return toplam;
}

fonksiyonu toplam değişkenini geri döndürür. Toplamın değişken tipi int olduğu için yazacağımız fonksiyonun prototipi int ToplamaFonksiyonu(int a, int b) olacaktır.

Metottan geri dönen değeri main fonksiyonunda ekrana yazdırmak istersek de
C++:
void main()
{
    printf("%d", ToplamaFonksiyonu(10, 5));
}
şeklinde yapabiliriz.


Şimdi de void metodunu anlatayım. Bu metod ise geriye değer döndürme gerekmeyen fonksiyonlarda kullanılır. Ya ekrana yazdırma işlemini bu metodun içinde yaparsın ya da pointerlar ile bu metod içinde oluşan değeri main'e çağırırsın. Çağırdığın değeri yazdırırsın. Pointer mevzusuna girmeyeceğim ben şuan. Karmaşık bir konu ilerleyen aşamalarda karşılaşırsın. Ben şimdilik void metoduna basit bir örnek vereyim:
C++:
void ToplamaFonksiyonu(int a, int b)
{
int toplam = a+b;
printf("%d",toplam);
}

void main()
{
    ToplamaFonksiyonu(10,5);
}
 
Son düzenleme:
Kendinizin bilmediği bilgiyi öğreten adama "bilmiyor" demek ne kadar mantıklı? Kodlamayla daha yeni tanışan birisiyseniz, bunlar gayet normaldir.
Bir insan birşeyi bilmiyorsa onu öğretemez tezinden yola çıkıyorum. Çünkü ben öğrenciyim sıfırım. Hoca bunu benim seviyeme inerek anlatabilmeli.
 
Bir insan birşeyi bilmiyorsa onu öğretemez tezinden yola çıkıyorum. Çünkü ben öğrenciyim sıfırım. Hoca bunu benim seviyeme inerek anlatabilmeli.
Dostum kafanı karıştıran konuyu bir örnek ile açıklamaya çalıştım. İnşallah yardımcı olmuşumdur. C++ ile anlattım ama çok temel fonksiyonlarla anlattım. Anlamış olman lazım.
 
Yazılım dili ve oyun motorlari kurs izleyerek değil makale okuyarak ve deneyerek öğrenilir. Türkçe kaynak istiyorsan çok az ve Türkçe kimsenin umrunda olmayan bir dil. İngilizce bilmiyorsan istersen en pahalı hocadan bizzat ders al, bir şeyi hatırlayamadığında donar kalırsın çünkü her şeyin Türkçe makalesi yok. Sanma ki yazılımcılar CV'sine yazdığı dilleri ve programları takır takır kullanabiliyor. Çoğunluğu bir şeyi hatırlayamadığında İngilizce araştırma yaparak makalesini bulup okuyor. Bu şekilde gelişirsin zaten, sadece kurs izleyerek Unity öğrenen görmedim ben.
Amacım aslında basit eğitici bir oyun yapabilmek. Bunun için modelleme öğrendim sonra Unity öğreniyim dedim. Unity içinde C# öğrenmem gerekti. C# içinde kodlama mantığını anlamam gerekiyor. Şuan mantığı anlayamadığım için zinciri kıramıyorum. Mutlaka kırmam lazım. Gerekirse İngilizce makaleler okuyacam sırf bu yüzden İngilizce öğreniyorum. Sitemim keşke hocalar mantığı öğretebilse. Evet Void kullana kullana mantığı bilmeden çeker giderim mesele olmaz ihtiyacım kadar yeter de. Ama anlamak ve öğrenmek istiyorum bu yüzden de güzel bir kaynak arayışına girdim ve hepsi aynı geldi bana. Kodlama kısmında sıfırım. Tavsiye edeceğiniz makaleler veya kaynaklar varmı? Kendim Google'layacağım yoksa.
 
Bir insan bir şeyi bilmiyorsa onu öğretemez tezinden yola çıkıyorum. Çünkü ben öğrenciyim sıfırım. Hoca bunu benim seviyeme inerek anlatabilmeli.
Bu yanlış. Bir insanın bir şeyi bilmesi, bu şeyi öğretebileceği anlamına gelmiyor. Bu yüzden herkes öğretmen olmuyor.
Hatayı, kurs ile öğrenmeye çalışmakla yapmışsın. Dil kurslarla değil, dokümentasyon ile öğrenilir bence.
 
class => sınıf
void fonksiyonadi => metod
int, float, double fonksiyonadi =>metod

eğer fonksiyon değer döndürecekse (return edecekse) başına döndüreceği değişkenin tipini alır. Örneğin a sayısı ile b sayısını toplayan bir fonksiyon yazalım. Bu fonksiyondan dönen değeri main fonksiyonunda yazdıralım.

C++:
int ToplamaFonksiyonu(int a, int b)
{
int toplam = a+b;
return toplam;
}

fonksiyonu toplam değişkenini geri döndürür. Toplamın değişken tipi int olduğu için yazacağımız fonksiyonun prototipi int ToplamaFonksiyonu(int a, int b) olacaktır.

Metottan geri dönen değeri main fonksiyonunda ekrana yazdırmak istersek de
C++:
void main()
{
    printf("%d", ToplamaFonksiyonu(10, 5));
}
şeklinde yapabiliriz.


Şimdi de void metodunu anlatayım. Bu metod ise geriye değer döndürme gerekmeyen fonksiyonlarda kullanılır. Ya ekrana yazdırma işlemini bu metodda yaparsın ya da pointerlar ile bu metod içinde oluşan değeri main'e çağırırsın. Pointer mevzusuna girmeyeceğim ben şuan. Karmaşık bir konu ilerleyen aşamalarda karşılaşırsın. Ben şimdilik void metoduna basit bir örnek vereyim:
C++:
void ToplamaFonksiyonu(int a, int b)
{
int toplam = a+b;
printf("%d",toplam);
}

void main()
{
    ToplamaFonksiyonu(10,5);
}
C# tan aşina olduğum bir int ifadesi var bu kodlamada. Yapı olarakta kafam karıştı şimdi.Çok kaba tabirle öğrendiğim şu mu? Ucu açık geri dönüt almayacağımız kodlamalarda void kullanıyoruz? Örneğinize binaen C# üzerinden toplama yapmak için ben şunu öğrendim mesela.
İnt sayi1 = 15;
İnt sayi2 = 10;
İnt toplam = a+b;
Console.WriteLine("toplama işleminizin sonucu:"+ toplam);
Af buyurun ama cidden sıfırım.
 
Bir insan bir şeyi bilmiyorsa onu öğretemez tezinden yola çıkıyorum. Çünkü ben öğrenciyim; sıfırım. Hoca bunu benim seviyeme inerek anlatabilmeli.

Dostum bu eğitime gireceklerin belirli bir seviyede olması gerek. O zaman daha yeni bilgisayar almış ve bilgisayar oyunu yapmak isteyen birisi olsun; bu kursu alsın. Sonra ise "bu kursta niye bilgisayar eğitimi yok?" desin. Sence dediğin ne kadar mantıklı? Adam basit kodlama dili bilgisine göre anlatmış.

Daha önceden az-çok kodlama bilgin olsaydı, dediklerini anlardın. Mesela void, class gibi terimleri. Sen de bir zahmet oyun geliştirmek için kodlama bilinmesi gerektiğini bil ve uygun dili bulduktan sonra öğrenmeye başla.

Her şeyi eğitmenden beklemeyin.
 

Geri
Yukarı