MonoBehaviour.Start()
Açıklama
Start, bir komut dosyası etkinleştirildiğinde, Update metodlarından herhangi biri ilk kez çağrılmadan hemen önce çağrılır.
Awake işlevi gibi, Start da komut dosyasının yaşam döngüsünde tam olarak bir kez çağrılır. Bununla birlikte, Awake, komut dosyasının etkinleştirilip etkinleştirilmediğine bakılmaksızın komut dosyası nesnesi başlatıldığında çağrılır. Start, başlatma anında komut dosyası etkin değilse, Awake ile aynı karede çağrılmayabilir.
Awake işlevi, başka bir nesnenin Start işlevi çağrılmadan önce Sahne'deki tüm nesnelere çağrılır. Bu gerçek, A nesnesinin başlatma kodunun B nesnesinin başlatılmasına bağlı olması gereken durumlarda faydalıdır; B'nin başlatılması Awake'de yapılmalı, A'nın başlatılması ise Start'ta yapılmalıdır.
Oyun sırasında nesneler instantiate edildiğinde (oluşturulduğunda), Awake işlevleri Sahne nesnelerinin Start işlevlerinin tamamlanmasından sonra çağrılır.
Start işlevi, yürütülmesini durdurmasına (yield) izin veren bir Coroutine (Koşullu İşlem) olarak tanımlanabilir.
// Hedef değişkenini başlatır.
// hedef private olduğu için Inspector'da düzenlenemez.
// ExampleClass, Awake ile başlar. GameObject sınıfının activeSelf özelliği false olarak
// ayarlanmıştır. activeSelf true olarak ayarlandığında Start() ve Update() işlevleri
// çağrılır ve ExampleClass çalışır.
// Dikkat edilmesi gereken nokta, ExampleClass (Script) Inspector'da devre dışı
// bırakılmıştır. Start işlevinin çağrılması için işaretlenmesi gerekmektedir.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
private float update;
void Awake()
{
Debug.Log("Awake");
update = 0.0f;
}
IEnumerator Start()
{
Debug.Log("Start1");
yield return new WaitForSeconds(2.5f);
Debug.Log("Start2");
}
void Update()
{
update += Time.deltaTime;
if (update > 1.0f)
{
update = 0.0f;
Debug.Log("Update");
}
}
}
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder