Kelas Penting - Quaternion
Kelas Penting - Waktu

Login Sitemap

Switch to Scripting

Login Objek adalah wadah data yang dapat Anda gunakan untuk menyimpan sejumlah besar data, independen instance kelas. Salah satu kasus penggunaan utama untuk ScriptableObjects adalah untuk mengurangi penggunaan memori Proyek Anda dengan menghindari salinan nilai. Ini berguna jika Proyek Anda memiliki PrefabJenis aset yang memungkinkan Anda untuk menyimpan GameObject lengkap dengan komponen dan properti. Prefab bertindak sebagai template dari mana Anda dapat membuat instance objek baru di tempat kejadian. More info
Lihat di Glossary
yang menyimpan data yang tidak berubah dalam terpasang MonoBehaviour scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
.

Setiap kali Anda meluruskan bahwa Prefab, itu akan mendapatkan salinan data itu sendiri. Alih-alih menggunakan metode, dan menyimpan data duplicated, Anda dapat menggunakan ScriptableObject untuk menyimpan data dan kemudian mengaksesnya dengan referensi dari semua Prefab. Ini berarti bahwa ada satu salinan data dalam memori.

Seperti MonoBehaviours, Alkitab Tujuan dari objek dasar Unity tetapi, tidak seperti MonoBehaviours, Anda tidak dapat melampirkan ScriptableObject ke GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
. Sebagai gantinya, Anda perlu menyimpannya sebagai Aset di Proyek Anda.

Ketika Anda menggunakan Editor, Anda dapat menyimpan data ke ScriptableObjects sementara mengedit dan pada waktu yang berjalan karena ScriptableObjects menggunakan namespace editor dan scripting Editor. Namun, Anda tidak dapat menggunakan ScriptableObjects untuk menyimpan data, tetapi Anda dapat menggunakan data yang tersimpan dari Aset ScriptableObject yang Anda mendirikan selama perkembangan.

Data yang Anda simpan dari Alat Editor untuk ScriptableObjects sebagai aset ditulis untuk disk dan oleh karena itu tetap antara sesi.

Halaman ini memberikan ikhtisar dari kelas ScriptableObject dan kegunaannya yang umum ketika scripting dengan itu. Untuk referensi knalpot dari setiap anggota kelas ScriptableObject, lihat Login Referensi skrip objek.

Menggunakan Scriptable Sitemap

Kasus penggunaan utama untuk ScriptableObjects adalah:

  • Menyimpan dan menyimpan data selama sesi Editor
  • Menyimpan data sebagai Aset dalam Proyek Anda untuk digunakan pada waktu berjalan

Untuk menggunakan ScriptableObject, buat skrip di folder AssetsSetiap media atau data yang dapat digunakan dalam permainan atau proyek Anda. Aset mungkin berasal dari file yang dibuat di luar Unity, seperti model 3D, file audio atau gambar. Anda juga dapat membuat beberapa jenis aset di Unity, seperti Pengontrol Animator, Audio Mixer atau Tekstur Render. More info
Lihat di Glossary
aplikasi Anda dan membuatnya berwarisi dari kelas ScriptableObject. Anda dapat menggunakan atribut CreateAssetMenu untuk memudahkan untuk membuat aset kustom menggunakan kelas Anda. Contoh:

using UnityEngine;

[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)]
public class SpawnManagerScriptableObject : ScriptableObject
{
    public string prefabName;

    public int numberOfPrefabsToCreate;
    public Vector3[] spawnPoints;
}

Dengan skrip di folder Assets Anda, Anda dapat membuat contoh Alkitab Anda Objek dengan menavigasi ke Assets > Create > ScriptableObjects > SpawnManagerScriptableObject. Berikan contoh ScriptableObject yang berarti nama dan mengubah nilai. Untuk menggunakan nilai-nilai ini, Anda perlu membuat skrip baru yang merujuk ScriptableObject Anda, dalam hal ini, SpawnManagerScriptableObject. Contoh:

using UnityEngine;

public class Spawner : MonoBehaviour
{
    // The GameObject to instantiate.
    public GameObject entityToSpawn;

    // An instance of the ScriptableObject defined above.
    public SpawnManagerScriptableObject spawnManagerValues;

    // This will be appended to the name of the created entities and increment when each is created.
    int instanceNumber = 1;

    void Start()
    {
        SpawnEntities();
    }

    void SpawnEntities()
    {
        int currentSpawnPointIndex = 0;

        for (int i = 0; i < spawnManagerValues.numberOfPrefabsToCreate; i++)
        {
            // Creates an instance of the prefab at the current spawn point.
            GameObject currentEntity = Instantiate(entityToSpawn, spawnManagerValues.spawnPoints[currentSpawnPointIndex], Quaternion.identity);

            // Sets the name of the instantiated entity to be the string defined in the ScriptableObject and then appends it with a unique number. 
            currentEntity.name = spawnManagerValues.prefabName + instanceNumber;

            // Moves to the next spawn point index. If it goes out of range, it wraps back to the start.
            currentSpawnPointIndex = (currentSpawnPointIndex + 1) % spawnManagerValues.spawnPoints.Length;

            instanceNumber++;
        }
    }
}

Sitemap File script harus memiliki nama yang sama dengan kelas.Note: The script file must have the same name as the class.

Pasang skrip di atas ke GameObject di SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
Anda. Kemudian, pada InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
, atur kolom Spawn Manager Values ke SpawnManagerScriptableObject baru yang Anda mendirikan.

Mengatur kolom Entity To Spawn untuk setiap Prefab di folder Aset Anda, kemudian klik Play di Editor. Prefab yang Anda referensikan dalam instaniasi Spawner menggunakan nilai yang Anda set dalam instance SpawnManagerScriptableObject.

Jika Anda bekerja dengan referensi ScriptableObject di Inspektur, Anda dapat mengklik dua kali kolom referensi untuk membuka Inspektur untuk ScriptableObject Anda. Anda juga dapat membuat editor kustom untuk menentukan tampilan Inspektur untuk jenis Anda untuk membantu mengelola data yang mewakilinya.


  • 2018–10–15 Sitemap
Kelas Penting - Quaternion
Kelas Penting - Waktu