Enviar valor de variável para outro script ao apertar um botão.
3 participantes
Página 1 de 1
Enviar valor de variável para outro script ao apertar um botão.
Olá, estou fazendo um jogo da memória para uma gamejam da faculdade e sou iniciante com a Unity, gostaria de fazer um menu onde teriam 3 botões de dificuldade, onde apertar o botão 1 ele enviaria o valor x para a variável y que é publica, do outro script que não esta na cena de menu.
Essa variável que quero passar, ela define a quantidade de "cartas viradas" que estarão disponíveis no jogo.
Isso seria possível? E como fazer?
Essa variável que quero passar, ela define a quantidade de "cartas viradas" que estarão disponíveis no jogo.
Isso seria possível? E como fazer?
Rhaas- Iniciante
- PONTOS : 818
REPUTAÇÃO : 3
Respeito as regras :
Re: Enviar valor de variável para outro script ao apertar um botão.
vc pode fazer um script tipo tempotodo que não é destruído entre as cenas e colocar uma variável static para que seja acessada por outros scripts é oq eu faço quando preciso acessar uma mesma variável entre cenas diferentes ou vc pode criar uma função e acessar ela por outro script via getcomponent (não sei se essa segunda daria certo)
Édipo- MembroAvançado
- PONTOS : 4006
REPUTAÇÃO : 62
Idade : 36
Respeito as regras :
Re: Enviar valor de variável para outro script ao apertar um botão.
Sim, é possível e tem varias formas de fazer.
1 - DontDestroyOnLoad
Essa forma consiste em ter um objeto com um componente que vai armazenar essa variável que tu quer passar, ai tu vai usar esse comando nesse objeto para fazer com que ele não seja destruído com a mudança de cena.
Acho que esse é a forma mais usada em tutoriais na internet, e nem é a mais simples, vai entender
https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
2 - Variável estática
Uma variável estática é uma variável que pertence a classe e não a instancia da classe, e ela persiste entre as cenas.
E tu não precisa de uma instancia da classe para acessa-la, é bem simples e pratico.
3 - Scriptable Object
Essa aqui é muito útil, a utilidade dessa forma de usar vai bem além de apenas passar informação entre cenas.
Como é iniciante vou explicar o que é Scriptable Object, Ele é uma Classe que tu pode criar uma instancia que pode ser armazenada nos arquivos.
É usada para coisas como criar um sistema de itens para um inventario, mas faz bem mais que isso.
Esse ScriptableObject de exemplo serve para armazenar uma float, eu poderia usar isso aqui para passar uma variável float entre cenas.
Eu também poderia usar como mensageiro entre duas classes (uma boa forma de eliminar dependência).
1 - DontDestroyOnLoad
Essa forma consiste em ter um objeto com um componente que vai armazenar essa variável que tu quer passar, ai tu vai usar esse comando nesse objeto para fazer com que ele não seja destruído com a mudança de cena.
Acho que esse é a forma mais usada em tutoriais na internet, e nem é a mais simples, vai entender
https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
2 - Variável estática
Uma variável estática é uma variável que pertence a classe e não a instancia da classe, e ela persiste entre as cenas.
E tu não precisa de uma instancia da classe para acessa-la, é bem simples e pratico.
3 - Scriptable Object
Essa aqui é muito útil, a utilidade dessa forma de usar vai bem além de apenas passar informação entre cenas.
Como é iniciante vou explicar o que é Scriptable Object, Ele é uma Classe que tu pode criar uma instancia que pode ser armazenada nos arquivos.
É usada para coisas como criar um sistema de itens para um inventario, mas faz bem mais que isso.
- Código:
[CreateAssetMenu]
public class FloatVariable : ScriptableObject
{
public float Value;
}
Esse ScriptableObject de exemplo serve para armazenar uma float, eu poderia usar isso aqui para passar uma variável float entre cenas.
Eu também poderia usar como mensageiro entre duas classes (uma boa forma de eliminar dependência).
Tópicos semelhantes
» Preciso de ajuda para substituir valor de variavel em outro script
» Nao consigo alterar o valor da variavel de outro script
» [Ajuda] Variavel não esta recebendo o valor do outro script
» Como acessar variável de um script usando outro script (Entre e entenda).
» Copiar prefab de um projeto e enviar para outro!!
» Nao consigo alterar o valor da variavel de outro script
» [Ajuda] Variavel não esta recebendo o valor do outro script
» Como acessar variável de um script usando outro script (Entre e entenda).
» Copiar prefab de um projeto e enviar para outro!!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos