Rehber Scriptable Objects nedir, nasıl kullanılır?

  • Konuyu başlatan Konuyu başlatan Syntax
  • Başlangıç Tarihi Başlangıç Tarihi
  • Mesaj Mesaj 0
  • Görüntüleme Görüntüleme 72

Syntax

Üstün
Katılım
11 Şubat 2024
Mesajlar
1.835
Çözümler
10
Beğeniler
1.843
Scriptable objects nedir?

Scriptable objects, Unity'de veri depolamak ve yönetmek için kullanılan bir sistemdir. Projenizde performansı artırmaya, veri yönetimini kolaylaştırmaya ve bağımlılıkları azaltmaya yardımcı olur.

Scriptable objects scripti nasıl oluşturulur?

Assets kısmına sağ tık yapın ardından Create>Scripting>ScriptableObject Script yolunu izleyip oluşturabilirsiniz.

Örnek silah sistemi

C#:
using UnityEngine;


[CreateAssetMenu(fileName = "New Weapon", menuName = "Game/Weapons/Weapon")]
public class WeaponData : ScriptableObject
{
    [Header("Temel Bilgiler")]
    public string weaponName = "Yeni Silah";
    public Sprite weaponIcon;
    public GameObject weaponModel;

    [Header("İstatistikler")]
    public int damage = 10;
    public float fireRate = 1f;
    public float range = 100f;
    public int ammoCapacity = 30;
    public float reloadTime = 2f;
    public bool hasScope;

}

Bir silah kodu yazmak için olması gereken değişkenleri yazdık. Ben şimdilik basit şeyleri yazdım. Buraya sfx, animasyon veya vfx gibi birçok şey ekleyebilirsiniz. Şimdi Unity'e geçip silah modelinizin prefabını oluşturmalısınız. Ardından Create>Game>Weapons>Weapon yolunu izleyin. Bu silahınızın datasını oluşturur.

Weapon model kısmına silahınızın prefab'ını koymanız lazım. Weapon Icon ise silah resmi.


Yaptım, şimdi bu ne işe yarayacak?

Scriptable Objects ile yapmasaydınız her silah için farklı script oluşturacaktınız. Oyununuzda 20 tane silah varsa 20 tane script olurdu. Şimdi ise bir tane WeaponController scripti açarak silahlarınızın verisine ulaşabileceksiniz. Daha az dosya ile halletmiş olduk. Kısaca oyununuz daha performanslı çalışacak.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…