Unity 3D Otomatik Save - Load Sistemi [JS & C#]

Purpolesse

Katılımcı Üye
23 Nis 2015
741
0
Antalya
Merhabalar Unity'de Kayıt Sistemi Yapmak Istiyorsanız Bu Konu Umarım Size Yardımcı Olur

[JS aka UnityScript]

Kod:
#pragma strict

var kaydediliyor : boolean = true; // burda kaydediliyor diye bir boolean tanımladık degerini true yaptık
var skor : int = 0; // burda skor adlı degişken tanımladık ve degerini 0 yaptık bu arada int yerine ne yazarsanız ileride onu çagıracagız mesala float yazarsanız PlayerPrefs.SetFloat gibi

function Start() {
otoKayit(); // bunu yazdık çünkü ileride otoKayit adında bir fonksiyon oluşturacagız
oyunYukle(); // bunu yazdık çünkü ileride oyunYukle adında bir fonksiyon oluşturacagız
}

function otoKayit() { // evet start'a yazdıgımızı burda kullandık
while(kaydediliyor) {
yield WaitForSeconds(3) // 3 saniye bekleyecek
kaydet(); // bunu yazdık çünkü ileride kaydet adında bir fonksiyon oluşturacagız
Debug.Log("kaydediliyor"); // kaydedilirken kaydediliyor diye konsola bir mesaj yazacak
}
}

function kaydet() {
PlayerPrefs.SetInt("skorun",skor); // burada skorun diye bir string içine skorumuzu kaydediyor
Debug.Log("kaydedildi"); // kaydedildi isimli konsola bir mesaj yazacak
}

function oyunYukle() {
PlayerPrefs.GetInt("skorun"); // burda skorun diye kaydettigimiz degeri çagırdık
Debug.Log("yüklendi");
}



[C#]

Kod:
using UnityEngine;
using System.Collections;

public class ScriptinizinAdi : MonoBehaviour {
public bool  kaydediliyor = true; // burda kaydediliyor diye bir bool  tanımladık degerini true yaptık
public int skor = 0; // burda skor adlı degişken tanımladık ve degerini 0 yaptık bu arada int yerine ne yazarsanız ileride onu çagıracagız mesala float yazarsanız PlayerPrefs.SetFloat gibi

v o i d Start (){
otoKayit(); // bunu yazdık çünkü ileride otoKayit adında bir fonksiyon oluşturacagız
oyunYukle(); // bunu yazdık çünkü ileride oyunYukle adında bir fonksiyon oluşturacagız
}

v o i d  otoKayit (){ // evet start'a yazdıgımızı burda kullandık
while(kaydediliyor) {
kaydet(); // bunu yazdık çünkü ileride kaydet adında bir fonksiyon oluşturacagız
Debug.Log("kaydediliyor"); // kaydedilirken kaydediliyor diye konsola bir mesaj yazacak
}
}

v o i d  kaydet (){
PlayerPrefs.SetInt("skorun",skor); // burada skorun diye bir string içine skorumuzu kaydediyor
Debug.Log("kaydedildi"); // kaydedildi isimli konsola bir mesaj yazacak
}

v o i d  oyunYukle (){
PlayerPrefs.GetInt("skorun"); // burda skorun diye kaydettigimiz degeri çagırdık
Debug.Log("yüklendi");
}
}

Önemli Bir Not: C# Scriptinde ScriptinizinAdi yazan Yere Yeni Bir Script Oluştururken Yazdıgınız Adı Yazın ve v o i d leri birleşik yazın script bir hata verirse bana bildirin


Scripti tamamen kendim yazdım emege saygı teşekkür verirseniz sevinirim tabi zorunlu degil :) iyi forumlar
 
Son düzenleme:

Linkk

Yeni üye
1 Tem 2015
4
0
Ankara
Hocam c# kodunda hata var. WaitForSeconds fonksiyonu c#da sadece IEnumeratorlarda çalışır. JS kodunda IEnumerator'a gerek yoktur. Düzeltirsen iyi olur :) Konuyu hortlatmış olabilirim kusura bakma :) Gece dolanırken bakayım demiştim.
Edit: Daha doğrusu yield parametresi sadece IEnumeratorlarda çalışır. Yanlış bilgi vermek istemedim :)
 

Purpolesse

Katılımcı Üye
23 Nis 2015
741
0
Antalya
Hocam c# kodunda hata var. WaitForSeconds fonksiyonu c#da sadece IEnumeratorlarda çalışır. JS kodunda IEnumerator'a gerek yoktur. Düzeltirsen iyi olur :) Konuyu hortlatmış olabilirim kusura bakma :) Gece dolanırken bakayım demiştim.
Edit: Daha doğrusu yield parametresi sadece IEnumeratorlarda çalışır. Yanlış bilgi vermek istemedim :)

Sagol kardeşim dalgınlıgıma gelmiş kusuruma bakma.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.