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