Aset Streaming
Paket aset

Modifikasi Aset Sumber Melalui Scripting

Instansi Otomatis

Biasanya ketika Anda ingin membuat modifikasi untuk setiap jenis aset permainan, Anda ingin itu terjadi pada runtime dan Anda ingin sementara. Misalnya, jika karakter Anda mengambil power-up invincibility, Anda mungkin ingin mengubah shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
dari materialAset yang menentukan bagaimana permukaan harus diberikan. More info
Lihat di Glossary
untuk karakter pemain untuk secara visual menunjukkan keadaan tak terlihat. Tindakan ini melibatkan memodifikasi materi yang sedang digunakan. Modifikasi ini tidak permanen karena kita tidak ingin materi untuk memiliki warna yang berbeda ketika kita keluar Play Mode.

Namun, dimungkinkan dalam Unity untuk menulis 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
yang akan secara permanen mengubah aset sumber. Mari kita gunakan contoh material di atas sebagai titik awal.

Untuk perubahan sementara warna material, kami mengubah properti shader dari komponen material.

private var invincibleShader = Shader.Find ("Specular");

function StartInvincibility {
    renderer.material.shader = invincibleShader;
}

Ketika menggunakan script ini dan keluar Play Mode, keadaan material akan diatur ulang ke apa pun sebelum memasuki Play Mode awalnya. Hal ini terjadi karena setiap renderer. bahan diakses, bahan secara otomatis dikeliru dan kasus dikembalikan. Contoh ini secara bersamaan dan otomatis diterapkan pada renderer. Jadi Anda dapat melakukan perubahan keinginan hati Anda tanpa takut keabadian.

Modifikasi Langsung

CATATAN PENTING

Metode yang disajikan di bawah ini akan memodifikasi file aset sumber aktual yang digunakan dalam Unity. Modifikasi ini tidak dapat dibatalkan. Gunakan mereka dengan hati-hati.

Sekarang mari kita katakan bahwa kita tidak ingin materi untuk mengatur ulang ketika kita keluar bermain mode. Untuk ini, Anda dapat menggunakan renderer.sharedMaterial. Properti ShareMaterial akan mengembalikan aset aktual yang digunakan oleh renderer ini (dan mungkin lainnya).

Kode di bawah ini akan secara permanen mengubah materi untuk menggunakan naungan Specular. Ini tidak akan mengatur ulang materi ke negara itu sebelum Play Mode.

private var invincibleShader = Shader.Find ("Specular");

function StartInvincibility {
    renderer.sharedMaterial.shader = invincibleShader;
}

Seperti yang dapat Anda lihat, membuat perubahan pada Materi bersama dapat berguna dan berisiko. Setiap perubahan yang dibuat untuk Materi bersama akan permanen, dan tidak dapat didohkan.

Anggota Kelas yang Berlaku

Rumus yang sama dijelaskan di atas dapat diterapkan ke lebih dari hanya bahan. Daftar lengkap aset yang mengikuti konvensi ini adalah sebagai berikut:

  • Bahan: renderer.material dan renderer.sharedMaterial
  • Meshes: meshFilter.meshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
    Lihat di Glossary
    dan meshFilter.sharedMesh
  • Physic MaterialsA aset fisika untuk menyesuaikan gesekan dan efek bouncing benda-benda tabrakan. More info
    Lihat di Glossary
    : colliderBentuk tak terlihat yang digunakan untuk menangani tabrakan fisik untuk objek. Seorang sari tidak perlu menjadi bentuk yang sama dengan jala objek - perkiraan kasar sering lebih efisien dan tidak dapat dibedakan dalam gameplay. More info
    Lihat di Glossary
    .material dan collider.sharedMaterial

Penugasan Langsung

Jika Anda mendeklarasikan variabel publik dari setiap kelas di atas: Bahan, Mesh, atau Bahan Physic, dan membuat modifikasi pada aset yang menggunakan variabel bukan menggunakan anggota kelas yang relevan, Anda tidak akan menerima manfaat dari sekiasi otomatis sebelum modifikasi diterapkan.

Aset yang tidak dikeliru secara otomatis

Ada dua aset berbeda yang tidak pernah secara instan saat memodifikasinya.

Setiap modifikasi yang dibuat untuk aset-aset ini melalui scripting selalu permanen, dan tidak pernah tidak dapat dijawab. Jadi jika Anda mengubah terrainPemandangan di tempat kejadian Anda. Terrain GameObject menambahkan pesawat datar besar untuk adegan Anda dan Anda dapat menggunakan jendela Inspektur Terrain untuk menciptakan lanskap rinci. More info
Lihat di Glossary
heightmapTekstur abu-abu yang menyimpan data tinggi untuk objek. Setiap pixel menyimpan perbedaan tinggi tegak lurus dengan wajah yang pixel mewakili.
Lihat di Glossary
Anda melalui scripting, Anda harus memperhitungkan nilai-nilai instan dan menetapkan sendiri. Same pergi untuk Tekstur. Jika Anda mengubah pixelsUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info
Lihat di Glossary
dari file tekstur, perubahannya permanen.

iOS dan Android Catatan

Aset Tekstur2D tidak pernah secara instan saat memodifikasinya di proyek iOS dan Android. Setiap modifikasi yang dibuat untuk aset-aset ini melalui scripting selalu permanen, dan tidak pernah tidak dapat dijawab. Jadi jika Anda mengubah piksel file tekstur, perubahannya permanen.

Aset Streaming
Paket aset