Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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.
- 1- Posso fazer via código usando esse comando na função ready para um exemplo de shader em um TextureRect.
- func _ready():
- $TextureRect.material = $TextureRect.material.duplicate()
- Na Godot, materiais (e outros Resources) são compartilhados por padrão.
- 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.
- 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.
- 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