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.
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.
Rumus yang sama dijelaskan di atas dapat diterapkan ke lebih dari hanya bahan. Daftar lengkap aset yang mengikuti konvensi ini adalah sebagai berikut:
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.
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.
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.