Unity Scriptable Objects'leri Nasıl Kayıt Edebilirim?

82334

Kilopat
Katılım
28 Ekim 2015
Mesajlar
74
Esenlikler.

Malumunuz bazen Scriptable object kullandığımızda kaydedilmesi gereken değişkenler oluyor. String int float bunları kaydetmek oldukça basit. Ancak örneğin bir item envanteri söz konusu olduğunda işin içine avatar, model v.b şeylerde giriyor. Bu extraları nasıl kaydedebiliriz? Umuyorum anlatabilmişimdir.
 
Bahsettiğin şey oyunu kaydetmek (save) ve geri yüklemek (load) ise bunun pek çok yöntemi vardır. En yaygın olarak PlayerPrefs kullanılır fakat kodlarının buna uyumlu olması gerekli, biraz zahmetli bir iş. Diğer bir yöntem ise tüm değişkenleri her hangi bir XML dosyasına kaydedip geri yüklemektir. Fakat benim bahsettiğim bu değil diyorsan bir bilgim yok.
 
Dostum basic değişkenleri kaydetmenin kolay olduğunu belirttim. Ben scriptable object içerisinde işlediğimiz diğer extra değişkenlerin kayıt işleminden bahsediyorum. Örneğin bir item create edebileceğimiz scriptable objectimiz var. İçeriğinde itemin isim, atak v.b string veya int değişkenleri var. Bunları kaydetmek basit. Yine bu değişkenlerin yanında itemin modelinide belirttiğim bir yuvam var. Gameobject olarak bu yuvayı açtığımı varsayalım. Bu scriptable object ile create ettiğim x itemini kaydetmeyi soruyorum.
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu (fileName = "Item Name", menuName = "Item/Yeni Item") ]
public class Item : ScriptableObject
{
    [Header("Item ID")]
    public int itemID;

    [Header("Item Tanım")]
    public string itemName;
    public string itemDescription;
    public Sprite itemAvatar;

    [Header("Extra")]
    public GameObject model;  //Kaydetmeyi istediğim extra örneği


    [Header("Satış")]
    public bool satilirMi;
    public int fiyat;
    

}
 
Anladığım kadarıyla yardımcı olamaya çalışacağım. Kaydetmek istediğiniz şeyin bir kılıç olduğunu farz edelim ve canı olsun. Önce kılıcın içinde can kodlu olan obje halini prefab olarak assete kaydedin. Ve bir kayıt sistemi oluşturun kılıcın canını kayıt etsin. Sonra kılıcın içine bir bir kod yazın, kayıt sisteminden kılıcın canını kılıca yükleyecek bir kod. Benim bildiğim şeylerle dediğiniz şey bu kadar yapılabilir, başka bir yöntem var ise bilmiyorum. Herhalde oyuncu istediği zaman kayıt etsin diye kayıt sistemini böyle yapmak istiyorsunuz. Bende sırf bu sorun var diye kayıt sistemimi otomatik yaptım yani belirli yerlerde(geri dönülemeyen yerlerde) kayıt alıyor.
 
Basic(string, float, int gibi) değişkenleri kaydetmek basit. Benim scriptable object kodumu gördüysen bu değişkenler dışında sprite ve game object olmak üzere farklı yuvalar var. Ben x itemini oluşturduğumda bu değişkenleri giriyorum(dolduruyorum). Bu extra değişkenleri, farklı formatlara çevirip bir kayıt işlemi gerçekleştirmek için ne yapılmalı hangi formata dönüştürülebilir bu mümkün mü? Bunun yanıtını arıyorum.
 
Böyle bir video buldum bir bakabilirsiniz. Belki istediğiniz şeyi yapmanızı sağlar.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…