19 Haziran 2016 Pazar

ACTİVE KAVRAMI ACTİVESELF SETACTİVE KOMUTLARI VE HİERARCHY

Active komutu inspectordeki nesnenin en başındaki toggle ile aynı işlevi görür. Active komutu ile enabled rasındaki fark ise enabled bir değişkendir ve componentler için kullanılır fakat Active bir fonksiyondur nesneler için kullanılır. Eğer nesne için aşağıdaki gibi bir kod yazılırsa sonuç nesne oyun alanında yok gibi varsayılacaktır.


public class ActiveObjects : MonoBehaviour
{
    void Start ()
    {
        gameObject.SetActive(false);
    }
}
İşte bu şekilde nesneyi yok edip tekrar ortaya çıkarabiliriz.Korku oyunlarındaki jump scaneler genellikle bu şekilde yapılmaktadır.

Hierarchy kavramı ise bir nesnenin alt nesneleri için kullanılır yani şu şekilde açıklanabilir.


public class tik : MonoBehaviour
{
    public GameObject Objem;
    
    
    void Start ()
    {
        Debug.Log("Actif mi: " + Objem.activeSelf);
        Debug.Log("Hiyerarşi aktif mi" + Objem.activeInHierarchy);
    }
}
İşte bu kod ile aşağıdaki sonuçları alabiliriz.



Burada 2 cisimde aktif






8 Haziran 2016 Çarşamba

ENABLED KAVRAMI

İsminden de anlaşılabileceği gibi enabled componentin aktifliği ile alakalı bir bool değişkendir.
Enabled inspector penceresindeki componentin yanındaki kutucukla doğrudan bağlantılır.
Aşağıdaki kod parçasında space tuşuna her basıldığında üzerinde script olan bir nesneye bağlı ışığı açıp kapatıyor.




using UnityEngine;
using System.Collections;

public class EnableComponents : MonoBehaviour
{
    private Light myLight;
    
    
    void Start ()
    {
        myLight = GetComponent<Light>();
    }
    
    
    void Update ()
    {
        if(Input.GetKeyUp(KeyCode.Space))
        {
            myLight.enabled = !myLight.enabled;
        }
    }
}

2 Haziran 2016 Perşembe

UNITY LERP FONKSİYONU

Unity de Lerp() fonksiyonu doğrusal ara değer hesaplamayı sağlar.

1. Parametre Başlangıç
2. Parametre Bitiş
3. Parametre Yüzdesel Oran'ı temsil eder

Örnek olarak 

float result = Mathf.Lerp (3f, 5f, 0.5f); 

gibi bir kodda 3 ile 5 rakamları arasında ki rakamlar üzerinde 0.5 oranında (%50) yani tam ortasını bulması isteniyor.Burada result değeri 4 olarak karşımıza çıkacaktır.

float result = Mathf.Lerp (05, 0.2f); 

Bu kodda ise 0 ile 5 arasında 0.2 oranında (%20) bir bölme yapacaktır.Yani result değeri 1 olarak karşımıza çıkar.

Ayrıca bu işlemi Vector üzerinde de uygulayabiliriz.

Vector3 from = new Vector3 (1f, 2f, 3f);
Vector3 to = new Vector3 (5f, 6f, 7f);

// Here result = (4, 5, 6)
Vector3 result = Vector3.Lerp (from, to, 0.75f);

Burada ilk vector ile ikinci vector'ü x ler ayrı y ler ayrı z ler ayrı şekilde verilen oranla tek tek düzenliyor.Yani

from  x=1 , y=2 , z=3
to      x=5 , y=6 , z=7

From daki x ile to da ki x değerleri yüzde 75 oranında bölünmeye tabi tutulursa sonuç 4 olacaktır.

From daki y ile to da ki y değerleri yüzde 75 oranında bölünmeye tabi tutulursa sonuç 5 olacaktır.

From daki z ile to da ki z değerleri yüzde 75 oranında bölünmeye tabi tutulursa sonuç 6 olacaktır.

Bu işlemin kullanım amacı oldukça çoktur.Şimdilik örnek amaçlı kod yayınlayacağım.İlerleyen zamanlarda açıklama ekleyeceğim.

void Update ()
{
    light.intensity = Mathf.Lerp(light.intensity, 8f, 0.5f* Time.deltaTime);}





31 Mayıs 2016 Salı

UPDATE FONKSİYONU VE TÜREVLERİ

UPDATE

Update her frame de 1 kez çağırılan özel bir fonksiyondur. Update fonksiyonu içine yazacağınız şey bilgisayarınızın gücü oyununuzun grafiklerine bağlı olarak değişen frame sayısı kadar çağırılır.Bunun kötü yanı ise stabil olmamasıdır. Fizik olaylarında bu göze çarpan bir sorun haline gelebilir.O neden ile update fonksiyonu başka bölümlere ayrılmıştır

FİXED UPDATE

Fixed update her fizik olayında çağrılır.Frame den bağımsızdır. Stabil çağrılma doğrusu vardır.Genelde fizikle ilgili işlemlerde kullanılır.

LATE UPDATE

Late update de update gibidir.Her frame de çalışır.Farklı olarak en son çağırılan update fonksiyonudur.Genellikle bir objeyi takip eden kamera için kullanılır.

Şimdi 3 update fonksiyonunun çalışmalarını inceleyelim.


Öncelikle bu kod u çalıştıralım.


Sonuç bu şekilde olmaktadır.


Unity Start ve Awake Fonksiyonları

Awake ve Start fonksiyonları ömürleri boyunca sadece 1 kez çalışan fonksiyonlardır.Awake her koşulda starttan daha erken çağrılır.

AWAKE

Awake fonksiyonu oyun ilk çalıştırıldığında script aktif değilken bile devreye girer.Genellikle ilk atamalar yapılacaksa kullanılır.

START

Start fonksiyonu ise script aktif hale geldikten hemen sonra çalışır.

Unity Değişkenler

Unity 3 farklı dil ile programlanabilir.Biz bu blog da C# üzerinden herşeyi anlatacağız.

Değişkenler

C# dilinde ki bazı temel değişkenler şunlardır.

byte1 bayt0, ..., 255 (tam sayı)byte a=5;
sbyte1 bayt-128, ..., 127 (tam sayı)sbyte a=5;
short2 bayt-32768, ..., 32767 (tam sayı)short a=5;
ushort2 bayt0, ..., 65535 (tam sayı)ushort a=5;
int4 bayt-2147483648, ..., 2147483647 (tam sayı)int a=5;
uint4 bayt0, ..., 4294967295 (tam sayı)uint a=5;
long8 bayt-9223372036854775808, ..., 9223372036854775807 (tam sayı)long a=5;
ulong8 bayt0, ..., 18446744073709551615 (tam sayı)ulong a=5;
float4 bayt±1.5*10-45, ..., ±3.4*1038 (reel sayı)float a=5F; veya float a=5f;
double8 bayt±5.0*10-324, ..., ±1.7*10308 (reel sayı)double a=5; veya double a=5d; veya double a=5D;
decimal16 bayt±1.5*10-28, ..., ±7.9*1028 (reel sayı)decimal a=5M; veya decimal a=5m;



Unity Script Oluşturma




Yeni script oluşturmak için birkaç farklı yöntem vardır.Bunların ilki sahnedeki objenin inspector alanındaki yere attribute olarak eklemektir.


Nesneye tıkladıktan sonra buradaki Add Component e tıklıyoruz.


Buradan Mevcut bir script i veya yeni script i seçmek için Script alanlarından birine giriyoruz.Yeni oluşturacağımız için new script diyoruz.

Script ismini girip Create and Add diyor ve oluşturuyoruz.

İkinci yöntem ise direkt olarak uygulamanın klasör kısmından oluşturmak.Bunun için klasör kısmına sağ tıklıyor ve yeni bir c# script oluştur diyoruz.


Bu işlemden sonra bu scripti mouse ile tutup kullanılacağı objeye atıyoruz.



Hepsi bu kadar.