3 Ağustos 2018 Cuma

Unity3d consol ile uygulamasi yapmak(2018)


Herkese merhaba ben Gani BAŞABAK Unity3d ufak çaplı ama kapsamlı bir bir consol uygulaması yaptım ve bunu sizler ile paylaşmak istedim.Bu kodumuzda PlayerPrefs , Klavye kullanımı ve Random.Range (Rastgele sayı üretme) parametrelerini kullandım. Giriş seviyesi bir proje oldu koda gerekli düzünlemelerle ve bugları sizlere düzelterek daha optimize hale getirebilirsiniz.

Consol ekranındaki görünümü.


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SansOyunu : MonoBehaviour {

int sayi;
int sayac;
void Start(){
PlayerPrefs.DeleteAll ();
Debug.Log ("Merhaba oyunumuza hoş geldiniz 1 numaralı çeken kazanır");
Debug.Log ("Numara Çekmek için Boşluk Tuşuna Basın");
}

void Update(){
if(Input.GetKeyDown(KeyCode.Space)){

PlayerPrefs.SetInt("Bolum"PlayerPrefs.GetInt ("Bolum", 0) + 1 );
sayac = PlayerPrefs.GetInt ("Bolum");

sayi = Random.Range (0,3);
Debug.Log (sayi+" "+"Numaralı topu çektiniz");
if(sayi == 1){
Debug.Log ("Oyunu Kazandınız");
} else {
Debug.Log ("3 Hakkınızdan"+" "+sayac+" "+"oynadınız");
}
}

if(sayac == 3){
print ("Oyun bitti");
PlayerPrefs.DeleteAll();
}
}
}

26 Temmuz 2016 Salı

İnstagram profil fotoğrafı büyültme.

                                                                        İnstagram


Merhaba arkadaşlar sizlere instagramdaki profil fotoğrafı nasıl büyültürüz ondan bahsedeceğim.
Size daha iyi yardımcı olması için sizlere video sunuyorum.



https://www.youtube.com/watch?v=RvK8iDmYVqc


30 Mart 2016 Çarşamba

Ses Açıp Kapama olayı nasıl yapılır ?

 Ses açıp kapama


Bu dersimize sizlere Unity3D Engine oyun moturuyla bir sahnedeki ses kapatıp açma olayınadan bahsedeceğiz , sadece bununla kalmayıp butonlarımız resimlerini sesin açık veya kapalı olmasına göre değiştireceğiz.


 

Kodlamammıza geçmeden önce bu admları gerçekleştirelim

 Hierarchy Panelimize sağ tıklayıp Create Empty diyip boş bir GameObject oluşturuyoruz ve GameObjectimize tıklıyoruz.


Tıklama işlemini gerçekleştirdikten sonra Inspector Paneline gelip Add Component diyip bir Audio Source oluşturalim akabinde AudioClip sekmesine projemize eklemiş olduğumuz ses dosyasını cağırıyoruz ses dosyamız uzantısı mp3 olması tercih edilebilir bir yoldur.



Şimdi kodlarımıza geçmenin vakti geldi.


Algoritması

  1. Image Componentini cağırmak lazım resimleri kullanmak için.
  2. AudioSource Componentini çağırmak lazım ses dosyası için.
  3. iki adet Sprite almak için Sprite Componentini çağrıyoruz.
  4. Sesin kontrol etmek için boolean değişkeni atadık.
  5. SesControl adında bir fonksiyon oluşturup buttondan cağırıyoruz.
  6. AudioSource'un  mute özelliğini True False yaparak sesi kontrol ediyoruz.
------------------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Sound : MonoBehaviour {

    Image _image;    
    public AudioSource audio;

    [Header("ResimAcKapa")]
    public Sprite OnSprite; 
    public Sprite OffSprite; 

    bool ses = true;

    void Start() {
        
        _image = GetComponent<Image>();
        audio = GetComponent<AudioSource>();
    }

    void Update() {
        
    if (ses == false) {
            audio.mute = true;
    }
    if(ses == true){
        audio.mute = false;
    }

}

    public void SesControl(){
        
        if (audio.mute) {
            ses = true;
            _image.sprite = OnSprite;
        } 
        else {
            _image.sprite = OffSprite;
            ses = false;
        }
    }
}


Gani BASABAK

20 Mart 2016 Pazar

Nasıl sahneler arası geçişler için müzik ayarları yapabilirim.


PlayerPrefs



Bu dersimizde sahneler arası geçiş yaptığımız zaman müziği açıp kapama işlemlerini kaydetmeyi anlatacağım.Bu proje ağırlıkla PlayerPrefs kullanımı ile alakalıdır.
      PlayerPrefs,Unity Engine oyun motoru için kullanılan kalıcı verileri kaydetmemizi sağlayan bir sınıftır.Veriler kastım ise şunlardır coin,score,ses ayarları,modifiye işlemleri ve bir çok işlemi kaydetmemizi sağlıyan verilerdir.
      Bu proje iki Sahne,2 c# script ve bir mp3 dosyası ve bir AudioSource Componenti kullanılarak hazırlanmıştır.








Bu c# script sesi ayarlayıp bir değere atadığımız scripttir.


using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;//Sahneler arası geçiş için bu kütüphane eklenmesi lazım.


public class SesiAyarla : MonoBehaviour {


    void Update () {

        if(Input.GetKeyDown(KeyCode.C))//Burada C tuşuna basıldıysa
            PlayerPrefs.SetInt ("ses",1);//Eğer yukardaki şart sağlandıysa ses adındaki kayıtı değeri 1 yap
        

        if(Input.GetKeyDown(KeyCode.K))//Burada K tuşuna basıldıysa
            PlayerPrefs.SetInt ("ses",2);//Eğer yukardaki şart sağlandıysa ses adındaki kayıtı değeri 2 yap
        

        if(Input.GetKeyDown(KeyCode.F2))//Burada ise F2 tuşuna basıldıysa.
            SceneManager.LoadScene ("SesiCal");//SesiCal adındaki sahneye aktar.

    }
}





Bu c# script sesi açılıp açılmayacağına kara veren scripttir.


using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement; //Sahneler arası geçiş için bu kütüphane eklenmesi lazım.

public class SesiCal : MonoBehaviour {

    AudioSource au; //AudiSource Componentini Çağırıyoruz.

    int Audio; //Audio adında bir tam sayı değişken tanımladım.

    void Start () {
        au = GetComponent<AudioSource>(); //Audio Componentinin nesnesini oluşturdum.
        Audio = PlayerPrefs.GetInt ("ses");//Ses adındaki bir kayıta Auido değişkenini atadım.

        if(Audio == 1)// kara yapısında Audio == 1 ise au değişkeninin mutesini true yap.
            au.mute = true;//True sesin acik olduğu anlamına geliyor.
        

        else if(Audio == 2)// kara yapısında Audio == 1 ise au değişkeninin mutesini true yap.
            au.mute = false;//False sesin kapalı olduğu anlamına geliyor.
        
    }
    void Update(){
        
        if(Input.GetKeyDown(KeyCode.F1))//Burada ise F1 tuşuna basıldıysa.
            SceneManager.LoadScene ("SesiAyarla");//SesiAyarla adındaki sahneye aktar
        
    }
}




Önemli:Bu iki script ayrı sahnelerde ve  sesCal isimli olan script bulduğu konuma AudioSource eklenmeli ve bir mp3 dosyasi atanmalıdır.

Veriler Nerde Saklanır ?

  • Windows :  Registry -> HKCU\Software\[kuruluş_adı]\[ürün_adı]
  • Windows WebPlayer :  %APPDATA%\Unity\WebPlayerPrefs\ [kuruluş_adı]\[ürün_adı]
  • Mac OS X : ~/Library/Preferences/ unity.[company name].[product name].plist
  • Mac OS X WebPlayer : ~/Library/Preferences/Unity/WebPlayerPrefs/ unity.[kuruluş_adı]\[ürün_adı].plist
    Not: Her oyun için ayrı kayıt tutulur.WebPlayer için kayıt limiti 1 mb'dir.

Buradar dosyanın hazır halini indirebilirsiniz

https://www.dropbox.com/s/1eg6fqb6fiw360r/sesAcKapa.unitypackage?dl=0

Gani BASABAK

19 Mart 2016 Cumartesi

Random olarak arka plan rengi nasıl değiştirilir ?

Bu dersimizde,Random olarak iki sayi arasında bir sayi tutup,arka plan renk değiştirme işlemi yapacağız bu işelem her oyuna başlandığından Random un oluşturmuş olduğu sayıya göre rengi belirleyecektir.Bu işelemi basit bir C# Scripti ile gerçekleştireceğiz.

 

using UnityEngine;
using System.Collections;

public class RenkDonusum : MonoBehaviour {
    
    int Renk;  //Burası Renk adından tam sayı tutan bir değişken;
    Camera cam; //Burda ise Camera Componentini tutan cam adın bir değişken var;

    void Start () {
        
        cam = GetComponent<Camera> (); // Bu kısımda yukarıda oluşturmuş olduğumuz cam değişkeni ile 
        //Camera Compenentine eşitliyoruz.

        Renk = Random.Range (1,10); // Burda Renk değişkenine ramdom olarak 1 ve 10 arasında bir sayı 
        //Belirletiyoruz.
    
    }
    
    void Update () {

        if(Renk < 5){//Karar yapısı ile Renk değişkenin 5 den küçük olup olmadığını karar verdiriyoruz.

            // Eger Yukardaki şart uyarsa bu ku geçerleştirmiş oluyoruz.
            cam.backgroundColor = Color.black;//Cam değişkeninin backgroundColorına ulalıp rengi değişriyoruz burda
        }
        if(Renk > 5){//Karar yapısı ile Renk değişkenin 5 den büyük olup olmadığını karar verdiriyoruz.
            
            // Eger Yukardaki şart uyarsa bu ku geçerleştirmiş oluyoruz.
            cam.backgroundColor = Color.white;//Cam değişkeninin backgroundColorına ulalıp rengi değişriyoruz burda
        }
    }
}

15 Mart 2016 Salı

Swipe Nasıl kullanılır ?


Merhaba arkadaşlar bu dersimizde swipe(Kaydırma işlemleri) bu işlem sadece dokunmatik ekranlı cihazlar calismaktadır. Yukari,asagı,saga,sola ve capra istediğimiz yone hareket ettirebiliyoru.Mantıksal olarak şu şekilde calışmaktadır,dilediğiniz yöne kaydırıldıysa sayac++ işlemini yap deriz,bununlada sınırlı kalmayıp fonksiyonda cagırabiliriz.


 Altı çizili olan alanlarda ekranin yönüne göre yapsını istediğimiz işlemi yapıyoruz.Bu kodu Update'in içine yazmamız yetiyor arkadaşlar


 

Vector3 baslaPos; //Vektör üçü tutan değişken
 
if (Input.touchCount > 0){

            Touch touch = Input.touches[0];

            switch (touch.phase){

            case TouchPhase.Began:

                baslaPos = touch.position;

                break;

            case TouchPhase.Ended:

                float swipeDistVertical = (new Vector3(0, touch.position.y, 0) - new Vector3(0, baslaPos.y, 0)).magnitude;

                if (swipeDistVertical > 300){

                    float swipeValue = Mathf.Sign(touch.position.y - baslaPos.y);

                    if (swipeValue > 0){
                       
                        print( "Yukari Hareket Etti");
                       
                    }
                   if (swipeValue < 0){
                       
                        print( "Asagi Hareket Etti");
                       
                    }


                }

                float swipeDistHorizontal = (new Vector3(touch.position.x,0, 0) - new Vector3(baslaPos.x, 0, 0)).magnitude;

                if (swipeDistHorizontal > 300){

                    float swipeValue = Mathf.Sign(touch.position.x - baslaPos.x);

                    
if (swipeValue > 0){
                       
                        print( "Saga Hareket Etti");
                       
                    }
                   if (swipeValue < 0){
                       
                        print( "Sola Hareket Etti");
                       
                    }


                }
                break;
            }
        }

















14 Mart 2016 Pazartesi

Yumuşatarak renk değiştirme nasıl yapılır ?

Merhaba arkadaşlar bu dersimizde Unity Engine ni kullanarak 3D ortamlarda bir oluşturmuş olduğumuz 3DUnity objesi veya her hangi bir modelleme programında modellenmiş bir modell olabilir fark etmeksizin bir çok objenin rengini değiştirebiliriz.

        Biz bu renk değiştirme işlemini direk olarak renk değiştirmek yerini ilk renkten ikinci renge geçiş sağlıyacağız.Bu işlemi yapmak için ojemizin bir materiala ihtiyacı var.Bu objemizin materialının rengini c# kodu ile erişerek,renk değiştirmesini sağlıyacağız.Kodumuza geçelim.


Renk Değiştirme Kodumuz




Kodan biraz bahsetmek istiyorum.

-Kodumuz iki renk alıyor biri başlanğıçtaki renk diğeri bitiş renk.

-Bir adet renderer değişkeni alıyor ve gameobjenin renderer componentini alıyoruz ve rend değişkenine alıyoruz.

rend = GetComponent<Renderer>(); ile kodumuza rendereri tanıtıyoruz.

rend.material.color = Color.Lerp(ilkRenk, sonRenk, 0.5f * Time.time); burda ise ilk renk ve son renk arasında yumuşatarak bir geçiş sağlamış oluyoruz.