Bagaimana cara memiliki beberapa bagian GameObject yang berbagi materi yang sama?

9

Pertanyaan saya adalah: Adakah cara agar GameObject berbagi bagian dari Materi yang sama, bukan tiruan, tetapi perpanjangan dari satu? Misalnya, dalam hal ini sembilan objek game yang berbagi materi yang sama diperbesar untuk memenuhi ukuran sembilan objek:

Rumput

Dan dalam kasus ini, saya menghapus misalnya satu di tengah, itu akan membuat materi yang sama diperbesar dengan ruang kosong di dalamnya:

Rumput2

Untuk tujuan ini, saya menggunakan satu bahan per objek, tetapi maksud saya adalah menggunakannya hanya satu tekstur untuk beberapa objek, atau misalnya, lebih dari satu tekstur di berbagai bagian dari satu objek yang sama. (Seperti tombol lukisan yang kita miliki di custom Unity3D Terrains).

JamesB
sumber
Ini pertanyaan sebelumnya tentang menyebarkan material di objek mungkin berguna di sini
DMGregory

Jawaban:

2

Sudahkah Anda melihat menggunakan Unity's Shadergraph untuk membuat shader Anda sendiri untuk materi tersebut? Anda mungkin dapat mencapai apa yang Anda inginkan dengan menggunakan posisi worldspace untuk tekstur / uvs. Saya tidak pandai menjelaskannya dan tidak pandai dalam shader, tetapi saya mencontoh Anda sebagai water shader karena saya bosan dan sudah bermain-main dalam proyek yang didedikasikan untuk eksperimen.

Gambar ini menunjukkan bahwa bidang yang tumpang tindih tampak berbagi materi yang sama contoh materi

Ini adalah contoh yang dibuat dalam shadergraph Contoh shadergraph

Ringkasan cepat dari node shader dari contoh saya saat saya memahaminya

  1. Node-node ini meraih nilai x dan z dalam worldspace dan menggabungkannya dalam vektor 2
  2. Node ini menggunakan nilai xz dan mengimbanginya berdasarkan node dalam 3
  3. menggunakan Time and a Vector 2, untuk menggulir offset uv. memberikan efek gelombang
  4. Mengalikan nilai berdasarkan nilai Normal Tiling .
  5. Mengambil data UV dari 4 dan peta normal
  6. Kekuatan normal. mengubah kekuatan efek
  7. Mengambil semua data dari 1 - 6 dan tekstur air dan dimasukkan ke dalam Albedo di 8
  8. semua node dimasukkan ke sini untuk shader untuk mengubah bagaimana masing-masing properti ini mempengaruhi materi.

Jika ada yang berpikir sesuatu yang telah saya katakan atau lakukan salah atau dapat ditingkatkan, jangan ragu untuk mengoreksi saya. Saya masih belajar dan dorongan ke arah yang benar selalu disambut. Saya telah mengunggah contoh adegan ke google drive untuk Anda main-main. tidak yakin apakah diperlukan atribusi tetapi aset air yang digunakan gratis dan dari gametextures.com

faulknerj
sumber
0

Anda dapat membuat atlas sprite dari satu tekstur, membuat objek anak untuk pesawat Anda atau bentuk apa pun yang Anda gunakan, menyeret guntingan sprite yang dibuat, Putar dan tempatkan anak dalam objek game sesuai keinginan Anda, dan voila, lihat gambar di bawah ini untuk melihat apa yang saya maksud,

atlas sprite

Ini mungkin pekerjaan yang membosankan tetapi sepertinya solusi ini sesuai dengan yang Anda inginkan.

Voon Van Eustace
sumber
0

Pilihan lain adalah menggunakan objek Proyektor dalam folder aset standar kesatuan. Itu tidak sangat performant, tetapi sangat mudah untuk diatur. Jadi untuk kasus-kasus sederhana, mungkin persis apa yang Anda cari. Tapi seperti saya katakan itu memiliki dampak kinerja yang cukup signifikan terutama jika Anda memproyeksikan tekstur yang lebih besar.

Adam B
sumber