Comment avoir plusieurs GameObjects partageant des morceaux du même matériel?

9

Ma question est: est-il possible que GameObjects partage des morceaux du même matériel, pas un clone, mais une extension d'un? Par exemple, dans ce cas, neuf objets de jeu partageant le même matériau agrandi pour correspondre à la taille de neuf:

Herbe

Et dans le cas, je supprime par exemple un au milieu, il gardera le même matériau agrandi avec l'espace vide à l'intérieur:

Grass2

À cette fin, j'ai utilisé un matériau par objet, mais mon intention est de ne l'utiliser qu'une seule texture pour plusieurs objets, ou par exemple, plus d'une texture dans différentes parties du même. (Comme le bouton de peinture que nous avons dans les Terrains Unity3D personnalisés).

JamesB
la source

Réponses:

2

Avez-vous envisagé d'utiliser le Shadergraph d'Unity pour créer votre propre shader pour le matériau? Vous pourriez être en mesure d'atteindre ce que vous voulez en utilisant la position de l'espace mondial pour la texture / uvs. Je ne suis pas bon pour l'expliquer et je ne suis pas bon pour les shaders, mais j'ai simulé un exemple rapide pour vous en tant que shader à l'eau parce que je m'ennuyais et jouais déjà dans mon projet dédié aux expériences.

Cette image montre que les plans qui se chevauchent semblent partager le même matériau exemples de matériaux

Ceci est l'exemple fait dans shadergraph Exemple de Shadergraph

Résumé rapide des nœuds de shader de mon exemple tel que je les comprends

  1. Ces nœuds saisissent les valeurs x et z dans l'espace mondial et les combinent dans un vecteur 2
  2. Ce nœud utilise les valeurs xz et les compense en fonction des nœuds dans 3
  3. en utilisant le temps et un vecteur 2, pour faire défiler le décalage uv. donne un effet de vague
  4. Multiplication de la valeur basée sur la valeur de mosaïque normale .
  5. Prend les données UV de 4 et une carte normale
  6. Force normale. change la force de l'effet
  7. Prend toutes les données de 1 à 6 et la texture de l'eau et alimente l'albédo en 8
  8. tous les nœuds alimentent ici le shader pour changer la façon dont chacune de ces propriétés affecte le matériau.

Si quelqu'un pense que tout ce que j'ai dit ou fait est incorrect ou pourrait être amélioré, n'hésitez pas à me corriger. J'apprends toujours et un coup de pouce dans la bonne direction est toujours le bienvenu. J'ai téléchargé l' exemple de la scène sur Google Drive pour vous amuser. Je ne sais pas si l'attribution est requise mais le bien en eau utilisé est gratuit et sur gametextures.com

faulknerj
la source
0

Vous pouvez créer un atlas de sprite à partir d'une texture, créer un objet enfant pour votre avion ou quelle que soit la forme que vous utilisez, faire glisser les découpes de sprite créées, faire pivoter et placer l'enfant dans l'objet de jeu de l'avion comme vous le souhaitez, et le tour est joué, regardez la photo ci-dessous pour voir ce que je veux dire,

atlas de sprite

Cela peut être un travail fastidieux, mais il semble que cette solution correspond à ce que vous voulez.

Voon Van Eustace
la source
0

Une autre option consiste à utiliser l'objet Projector dans le dossier des ressources standard de l'unité. Ce n'est pas très performant, mais c'est vraiment facile à installer. Donc, pour les cas simples, cela peut être exactement ce que vous recherchez. Mais comme je l'ai dit, cela a un impact assez important sur les performances, surtout si vous projetez des textures plus grandes.

Adam B
la source