Zunesha

Como garantir que um objeto não compartilhe o mesmo shader com outras instancias

Sep 29th, 2025
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Como garantir que um objeto não compartilhe o mesmo shader com outras instancias na mesma cena.Fazendo com que um objeto tenha o seu próprio material exclusivo.
  2.  
  3.  
  4. 1- Posso fazer via código usando esse comando na função ready para um exemplo de shader em um TextureRect.
  5.  
  6. func _ready():
  7.     $TextureRect.material = $TextureRect.material.duplicate()
  8.  
  9. Na Godot, materiais (e outros Resources) são compartilhados por padrão.
  10. Ou seja, se você altera um parâmetro (shader_parameter, por exemplo) em um ShaderMaterial que está sendo usado por vários nós, todos os nós são afetados.
  11.  
  12. Com esse código, você “quebra” esse compartilhamento: cada instância do TextureRect passa a ter seu próprio material, permitindo alterar parâmetros só nele, sem mexer nos outros.
  13.  
  14. 2- Uma forma mais simples sem precisar digitar essa linha de código é no inspector do objeto onde esta o shader seleciona a opção :Make Unique
Advertisement
Add Comment
Please, Sign In to add comment