¿Cómo tener múltiples GameObjects compartiendo piezas del mismo material?

9

Mi pregunta es: ¿hay alguna forma de que GameObjects comparta piezas del mismo material, no un clon, sino una extensión de uno? Por ejemplo, en este caso, nueve objetos del juego comparten el mismo material ampliado para cumplir el tamaño de nueve:

Césped

Y en el caso, elimino por ejemplo uno en el medio, mantendrá el mismo material ampliado con el espacio en blanco adentro:

Grass2

Para este propósito, usé un material por objeto, pero mi intención es usarlo solo una textura para múltiples objetos, o por ejemplo, más de una textura en diferentes partes del mismo. (Al igual que el botón de pintura que tenemos en los terrenos personalizados de Unity3D).

JamesB
fuente

Respuestas:

2

¿Has pensado en usar el Shadergraph de Unity para hacer tu propio sombreador para el material? Es posible que pueda lograr lo que desea utilizando la posición del espacio mundial para texturas / uvs. No soy bueno para explicarlo y no soy bueno con los sombreadores, pero me burlé de un ejemplo rápido para ti como sombreador de agua porque estaba aburrido y ya estaba jugando en mi proyecto dedicado a los experimentos.

Esta imagen muestra que los planos superpuestos parecen compartir el mismo material materiales de ejemplo

Este es el ejemplo hecho en shadergraph Ejemplo de Shadergraph

Resumen rápido de los nodos de sombreador de mi ejemplo tal como los entiendo

  1. Estos nodos están tomando los valores de x y z en worldspace y combinándolos en un vector 2
  2. Este nodo utiliza los valores xz y los compensa en función de los nodos en 3
  3. usando Time y un Vector 2, para desplazar el desplazamiento uv. da un efecto de onda
  4. Multiplicar el valor basado en valor de mosaico normal .
  5. Toma los datos UV de 4 y un mapa normal
  6. Fuerza normal. cambia la fuerza del efecto
  7. Toma todos los datos del 1 al 6 y la textura del agua y los alimenta en albedo en 8
  8. Todos los nodos se alimentan aquí para que el sombreador cambie la forma en que cada una de estas propiedades afecta el material.

Si alguien piensa que algo que he dicho o hecho es incorrecto o podría mejorarse, no dude en corregirme. Todavía estoy aprendiendo y un empujón en la dirección correcta siempre es bienvenido. He subido la escena de ejemplo a Google Drive para que juegues. no estoy seguro de si se requiere atribución pero el activo de agua utilizado es gratuito y de gametextures.com

faulknerj
fuente
0

Puede crear un atlas de sprites a partir de una textura, crear un objeto secundario para su plano o cualquier forma que esté utilizando, arrastrar los recortes de sprites creados, rotar y colocar el elemento secundario dentro del objeto plano del juego como desee, y listo, mire la foto a continuación para ver lo que quiero decir,

atlas de sprites

Puede ser un trabajo tedioso, pero parece que esta solución se ajusta a lo que desea.

Voon Van Eustace
fuente
0

Otra opción es usar el objeto Proyector en la carpeta de activos estándar de la unidad. No es muy eficiente, pero es realmente fácil de configurar. Entonces, para casos simples, puede ser exactamente lo que está buscando. Pero, como dije, tiene un impacto en el rendimiento bastante significativo, especialmente si proyecta texturas más grandes.

Adam B
fuente