5 Ağustos 2012 Pazar

Unity3D Oyunu Durdurma


Pause modunu birçok oyunda görmüşsünüzdür.Bu derste bu sistemi yapmak için bir sınıf hazırlayacağız.
Mantığı gayet basit.Örnek olduğu için bir tuşa basıldığında durdurulup durdurulmadığını kontrol eden değişkenimizin değerini değiştirdikten sonra bu değişkeni özel durumlarda kullanabilecez.Ayrıca unity'nin zaman ölçeği anlamına gelen Time.timeScale değişkeninin değerini 0 yaparak oyundaki birçok öğeyi de durdurmuş olucaz.

Pause.cs
using UnityEngine;

public class Pause : MonoBehaviour
{

    public static bool isPaused; // Varsayılan değeri false..
    // static olduğu için diğer classlardan Pause.isPause şeklinde çağırılabilir.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.P)) // P tuşuna basıldığında
        {
            if (isPaused) // Oyun durdurulmuşsa devam ettir
            {
                Time.timeScale = 1;
                isPaused = false;
            }
            else // Durdurulmamışsa durdur
            {
                Time.timeScale = 0;
                isPaused = true;
            }
        }
    }

    void OnGUI()
    {
        if (isPaused) // Oyun durdurulmuşsa
        {
            GUILayout.Label("Oyun durduruldu...");
        }
    }

}
Time.timeScale değişkenini kullanıp oyunu yavaşlatarak efektler de yapabilirsiniz.

Kolay gelsin.

Hiç yorum yok:

Yorum Gönder