[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
+10
YuryVerley
Marc7
Weslley
MárcioVictor
hellkiller
Mauricio Maggot
RenanMSV
rafaelllsd
Guilherme_cj852
MarcosSchultz
14 participantes
Página 1 de 1
[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
É bem simples, vou mostrar com um exemplo ( JavaScript )...
Tenho este script com nome "script1" e tenho este codigo nele:
tenho outro script chamado "script2" e tenho este codigo nele
com isto, se eu apertar f, a variavel que está no script 1 se tornará falsa...
resumindo, para acessar variaveis de outros scripts, a variavel tem que ser estatica ( static ) e voce usa este metodo para acessa-la
NomeDoScript.NomeDaVariavel
simples
Tenho este script com nome "script1" e tenho este codigo nele:
- Código:
static var estatica : boolean;
function Start () {
estatica = true;
}
tenho outro script chamado "script2" e tenho este codigo nele
- Código:
function Update () {
if(Input.GetKeyDown("f")){
script1.estatica = false;
}
}
com isto, se eu apertar f, a variavel que está no script 1 se tornará falsa...
resumindo, para acessar variaveis de outros scripts, a variavel tem que ser estatica ( static ) e voce usa este metodo para acessa-la
NomeDoScript.NomeDaVariavel
simples
Última edição por MarcosSchultz em Qua Dez 28, 2016 10:30 pm, editado 2 vez(es)
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Tem como eu acessar a variavel de um script javascript, em um script C#?
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Tem sim, más cara, NÃO FAÇA ISSO
Programe apenas em uma linguagem... Não misture, pois isto gera perca de desempenho e também bagunça as coisas...
Opte por variaveis estáticas para comunicar-se de script para script, ou melhor, utilize variáveis públicas, e acesse elas através do "GetComponent"
Programe apenas em uma linguagem... Não misture, pois isto gera perca de desempenho e também bagunça as coisas...
Opte por variaveis estáticas para comunicar-se de script para script, ou melhor, utilize variáveis públicas, e acesse elas através do "GetComponent"
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Eu so programo em c#, mais eu queria acessar a variavel "maxForwardSpeed" do script "CharacterMotor" q é do first person controller da unity ai é em javascript, eu queria fazer isso pra criar um script proprio de correr, e se cansar e tals
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Ainda utiliza Unity 4? Unity 5 é tudo em C#
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Eu to na unity 4, eu tinha atualizado pra unity 5, mais no outro dia quando fui abrir ela, so tinha a unity 4 instalada, e minha net n é mt boa, então so vou atualizar pra unity 5 dps.
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Cara, não aconselho se manter muito na Unity 4...
A unity 5 tem TUDO que a Unity 4 PRO tem, inclusive efeitos de camera, Oclusion para otimização, física 3x mais leve que a Unity 4 (3x mesmo ), entre outras coisas. E totalmente free...
O quanto antes puder atualizar, faça!
A unity 5 tem TUDO que a Unity 4 PRO tem, inclusive efeitos de camera, Oclusion para otimização, física 3x mais leve que a Unity 4 (3x mesmo ), entre outras coisas. E totalmente free...
O quanto antes puder atualizar, faça!
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
uma coisa q me desanima um pouco d atualizar é o fato de algumas coisas estarem com outra nomenclatura na unity 5, por exemplo: eu demorei um tempão pra conseguir achar a janela Render Settings na unity 5
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Estou aprendendo C#, e para acessar a variável de C# para C# é static também?
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
rafaelllsd escreveu:Estou aprendendo C#, e para acessar a variável de C# para C# é static também?
Depende cara, você pode acessar variáveis públicas de outros script através do GetComponent, más também pode utilizar o static, exemplo:
- Código:
public static float valor;
agora basta usar o nomeDoScript.NomeDaVariavel e acessa-la normalmente :D
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
O uso das estaticas em comparacao com o getcomponent é mais vantajoso em questao de desempenho?
Um monte de estatiscas sendo lidas e escritas VS um monte de getcomponent...
Um monte de estatiscas sendo lidas e escritas VS um monte de getcomponent...
RenanMSV- Instrutor
-
PONTOS : 4409
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
RenanMSV escreveu:O uso das estaticas em comparacao com o getcomponent é mais vantajoso em questao de desempenho?
Um monte de estatiscas sendo lidas e escritas VS um monte de getcomponent...
Depende da maneira que você utilizar... Más de maneira geral, usar static é mais facil porém quase sempre desvantajoso, por 2 motivos.
1 - É mais pesado
2 - É uma variável única e estática, então você não pode utilizar o mesmo script para vários objetos na cena.
Por exemplo: Eu tenho uma porta, e nela uma variável pública. Se eu utilizar GetComponent, eu vou afetar apenas a variável daquele objeto que eu estou lidando, e isto permite que eu tenha vários objetos com o mesmo script, más cada um vai agir separadamente. Já se a variável é do tipo estática, já era, pois o que acontece em uma, irá acontecer a todas, Então se você tem uma variável estática que controla se a porta está aberta ou fechada, este parametro será passado para todos os objetos da cena que contem o mesmo script.
De maneira geral, prefiro 10x mais utilizar GetComponent do que Static... Static é mais para coisas como a vida do Player, ou parâmetros únicos que devem ser acessados sem referência, ai você usa static, más se não, use GetComponent.
(DUVIDA) Sobre public em c#
Marcos, se eu colocar esses script(no public) dá para colocar uma imagem no local do Inspector?
- Código:
public GameObject Objeto Imagem;
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Use Isto para imagens,textos,etc.
Coloque isso em cima do script:
Coloque isso em cima do script:
- Código:
using UnityEngine.UI;
- Código:
public Image Test;
- Código:
static public Image Test;
hellkiller- Mestre
- PONTOS : 3979
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Resposta.
hellkiller escreveu:Use Isto para imagens,textos,etc.
Coloque isso em cima do script:E isso onde bota as variaveis normalmente
- Código:
using UnityEngine.UI;se for para poder pegar e so colocar o static,assim
- Código:
public Image Test;
- Código:
static public Image Test;
Ok!E se eu usar esse script presta?
- Código:
using UnityEngine
using System.Collections
using UnityEngine.UI
public GameObject Imagem;
Vai prestar o script se puder tirar a duvida agradeço :D
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Marcos como eu consigo acessar as variáveis do FirstPersonalController do Unity 5? eu usei o using UnityStandardAssets.Characters.FirstPerson; e consegui ligar e desligar o Controller (da mesma forma que voce fez no Script de pause), mas acessar as variáveis eu não consegui, queria mudar a velocidade de movimentação do personagem através de um menu de configuração. Abri o script do FirstPersonalController mas não entendi quase nada, as variáveis são declaradas: [SerializeField] private float m_WalkSpeed; e mesmo sendo private aparecem no Inspector, mas por script não consigo acessar. Se puder dar uma luz aí.
Editando
RESOLVIDO: Consegui aqui, é só editar o FirstPersonalController deletando o [SerializeField] private e colocando public, que depois pode ser acessado como variável de outro script qualquer e funciona de boa.
Editando
RESOLVIDO: Consegui aqui, é só editar o FirstPersonalController deletando o [SerializeField] private e colocando public, que depois pode ser acessado como variável de outro script qualquer e funciona de boa.
MárcioVictor- Iniciante
- PONTOS : 3027
REPUTAÇÃO : 4
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
MárcioVictor escreveu:Marcos como eu consigo acessar as variáveis do FirstPersonalController do Unity 5? eu usei o using UnityStandardAssets.Characters.FirstPerson; e consegui ligar e desligar o Controller (da mesma forma que voce fez no Script de pause), mas acessar as variáveis eu não consegui, queria mudar a velocidade de movimentação do personagem através de um menu de configuração. Abri o script do FirstPersonalController mas não entendi quase nada, as variáveis são declaradas: [SerializeField] private float m_WalkSpeed; e mesmo sendo private aparecem no Inspector, mas por script não consigo acessar. Se puder dar uma luz aí.
Editando
RESOLVIDO: Consegui aqui, é só editar o FirstPersonalController deletando o [SerializeField] private e colocando public, que depois pode ser acessado como variável de outro script qualquer e funciona de boa.
[SerializeField] e um atributo ele força serializar um campo privado assim tornando visível no inspector
Weslley- Moderador
-
PONTOS : 5652
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
MarcosSchultz, se eu tenho por ex. em um script "scriptA" a variavel public float valor; e dentro de um script "scriptB" eu quero acessar essa variavel valor, se eu escrever:
var qualquerNome = GameObject. FindGameObjectWithTag("x")getComponent<scriptA>().valor;
está certo fazer assim?
var qualquerNome = GameObject. FindGameObjectWithTag("x")getComponent<scriptA>().valor;
está certo fazer assim?
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Não está quase certo, vc precisa Buscar o objeto que carrega o script (melhor buscar pelo nome pq pode ter mais de um objeto com a mesma tag e vai dar problema) e depois dar GetComponent no Script e depois acessar a variável que vc quer.Marc7 escreveu:MarcosSchultz, se eu tenho por ex. em um script "scriptA" a variavel public float valor; e dentro de um script "scriptB" eu quero acessar essa variavel valor, se eu escrever:
var qualquerNome = GameObject. FindGameObjectWithTag("x")getComponent<scriptA>().valor;
está certo fazer assim?
Ficaria assim:
- Código:
using UnityEngine;
using System.Collections;
public class scriptB : MonoBehaviour {
public float QualquerNome;
void Update () {
QualquerNome = GameObject.Find ("NomeDoObjetoQueCarregaoOscriptA").GetComponent<scriptA>().valor;
}
}
MárcioVictor- Iniciante
- PONTOS : 3027
REPUTAÇÃO : 4
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Eu costuma fazer uma classe que saiba quem e quem a sim fica mais fácil e organizado
e crio uma variável estática da classe em si assim posso acessar as classe sem problema
Exemplo
e crio uma variável estática da classe em si assim posso acessar as classe sem problema
Exemplo
- Código:
public class Behaviour : MonoBehaviour
{
public ClasseA classeA;
public ClasseB classeB;
public ClasseC classeC;
public static instance;
void Awake()
{
instance = this;
}
}
- Código:
public class Exemplo: MonoBehaviour
{
public ClasseA classeA;
void Start()
{
classeA = Behaviour.instance.classeA;
}
}
Weslley- Moderador
-
PONTOS : 5652
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
MárcioVictor, realmente escrevendo QualquerNome = GameObject.Find("NomeDoObjetoQueCarregaoOscriptA").GetComponent<scriptA>().valor; funcionou!
Agora weslleyFx, não entendi bem essa possibilidade que vc sugere, escreva um script como se fosse para funcionar para valer, aí eu testo aqui no unity.
Agora weslleyFx, não entendi bem essa possibilidade que vc sugere, escreva um script como se fosse para funcionar para valer, aí eu testo aqui no unity.
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Boa tarde pessoal!
Criei aqui um menu de configurações onde eu seleciono o numero de vidas.
Já defini os scripts para que , quando eu apertar para trás ou para frente, esse numero muda dentro do menu, aí o que na verdade muda é o texto do UI text refente a esse numero.
quero que o numero de vidas que vai aparecer durante o jogo na tela seja o numero que eu selecionei lá no menu configurações.
o painel HUD que criei com as vidas está em uma cena, já o texto numero de vidas está em outra.
como faço para acessar um objeto ou variavel de outra cena diferente?
por exemplo, no meu script a variavel referente à vida está assim:
public int player = 3;
agora, em outro script dentro de outra cena, o codigo para fazer aparecer as vidas na tela está assim:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class LifeManager : MonoBehaviour {
public static int life;
private Text number;
void Awake() {
number = GetComponent<Text>();
life = 3;
}
void Update() {
number.text = "" + life;
}
}
reparem que o valor 3 já está definido, sempre será esse valor 3 de vidas, mas eu quero que ele seja o valor que eu definir lá no meu.
alguém pode me ajudar?
desculpe se não fui muito claro
Criei aqui um menu de configurações onde eu seleciono o numero de vidas.
Já defini os scripts para que , quando eu apertar para trás ou para frente, esse numero muda dentro do menu, aí o que na verdade muda é o texto do UI text refente a esse numero.
quero que o numero de vidas que vai aparecer durante o jogo na tela seja o numero que eu selecionei lá no menu configurações.
o painel HUD que criei com as vidas está em uma cena, já o texto numero de vidas está em outra.
como faço para acessar um objeto ou variavel de outra cena diferente?
por exemplo, no meu script a variavel referente à vida está assim:
public int player = 3;
agora, em outro script dentro de outra cena, o codigo para fazer aparecer as vidas na tela está assim:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class LifeManager : MonoBehaviour {
public static int life;
private Text number;
void Awake() {
number = GetComponent<Text>();
life = 3;
}
void Update() {
number.text = "" + life;
}
}
reparem que o valor 3 já está definido, sempre será esse valor 3 de vidas, mas eu quero que ele seja o valor que eu definir lá no meu.
alguém pode me ajudar?
desculpe se não fui muito claro
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
arruma o script com o
- Código:
script aqui
RenanMSV- Instrutor
-
PONTOS : 4409
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
como que eu faço para digitar o script dessa forma? tenho tentado fazer isso..
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class LifeManager : MonoBehaviour {
public static int life;
private Text number;
void Awake() {
number = GetComponent();
life = 3;
}
void Update() {
number.text = "" + life;
}
}
ok era só usar o Code!
agora, como eu faço esse efeito descrito acontecer?
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Você não colocou o script corretamente...
Copie direto do editor de códigos que você usa para a caixinha que tem o símbolo {} aqui no fórum... do contrário ele perderá o componente.
Copie direto do editor de códigos que você usa para a caixinha que tem o símbolo {} aqui no fórum... do contrário ele perderá o componente.
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class LifeManager : MonoBehaviour {
public static int life;
private Text number;
void Awake() {
number = GetComponent<Text>();
life = 3;
}
void Update() {
number.text = "" + life;
}
}
Marcos obrigado por avisar, copiei o codigo direto de dentro do Visual Studio e colei.
é isso mesmo?
Marc7- Mestre
- PONTOS : 3369
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Hmm, pelo que entendi você está tentando manter informações entre cenas... Existem vários métodos de fazer isto, pode ser utilizando PlayerPrefs, DontDestroyOnLoad, banco de dados, etc, etc... o meu preferido é aquele que eu utilizei neste tutorial:
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Queira Saber como faço para editar o script FirstPersonController da unity 5.
YuryVerley- Iniciante
- PONTOS : 2813
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Ué, não entendi brother editar e só abrir no mono ou no Vs '-'
Weslley- Moderador
-
PONTOS : 5652
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Como nosso amigo weslleyFx disse se você quiser editá-lo diretamente apenas dê dois cliques sobre ele na aba project. mas se você quiser acessá-lo indiretamente, ou seja, por meio de outro script você precisa importar esta biblioteca no script que você usara para acessar o script FirstPersonController:
- Código:
using UnityStandardAssets.Characters.FirstPerson;
JohnRambo- Moderador
-
PONTOS : 5100
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
YuryVerley escreveu:Queira Saber como faço para editar o script FirstPersonController da unity 5.
Neste tutorial eu edito o personagem:
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Eu não sei se é contra as regras comentar aqui após tanto tempo, mais eu gostaria de agradecer, pois esse negocio de acessar variável de outro script é muito bom!
"NomeDoScript.NomeDaVariavel"![Cheers](/users/1914/40/81/62/smiles/1257391313.png)
"NomeDoScript.NomeDaVariavel"
![Cheers](/users/1914/40/81/62/smiles/1257391313.png)
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
zZAndersonZz escreveu:Eu não sei se é contra as regras comentar aqui após tanto tempo, mais eu gostaria de agradecer, pois esse negocio de acessar variável de outro script é muito bom!
"NomeDoScript.NomeDaVariavel"
É MUITO útil... só tem que cuidar para não usar em códigos que vão em mais de um objeto... ai tem que optar por utilizar GetComponent :D
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Olá Marcos, Tenho um script de armas Onde minha munição tem valor (x), então através de outro script gostaria de acessar a variável e alterar O valor adicionando munição através de um código ou ao apertar uma tecla por exemplo. ...da pra fazer?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
tom ramber escreveu:Olá Marcos, Tenho um script de armas Onde minha munição tem valor (x), então através de outro script gostaria de acessar a variável e alterar O valor adicionando munição através de um código ou ao apertar uma tecla por exemplo. ...da pra fazer?
Da sim... cria a variável como estática, e acessa ela usando "nomeDoScript.nomeDaVariavel"
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Valeu Marcos ,consegui fazer o que eu queria com ajuda da video aula n¤ 3 da série em C#....
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Opa primeiramente queria agradecer o trabalho de vocês! Serio!. Agora a minha duvida eu estou tentando achar uma forma de usar o OnTriggerEnter em um objeto vazio.
Não sei explicar bem então vou mostrar um exemplo do que quero fazer :
Quero que isso aconteça assim que o player entrar em contato com o objeto tal mas não sei fazer isso sem o script estar dentro do player...
Não sei explicar bem então vou mostrar um exemplo do que quero fazer :
Quero que isso aconteça assim que o player entrar em contato com o objeto tal mas não sei fazer isso sem o script estar dentro do player...
- Código:
public void OnTriggerEnter(Collider other)
{
if (Personagem collider = other.gameObject.CompareTag("A-1") && ba_1 == false)
{
Instantiate(prefab, new Vector3(-3.97f, 1.51f, 0.63f), Quaternion.identity);
ba_1 = true;
a_1++;
}
}
Danilo- Iniciante
- PONTOS : 1291
REPUTAÇÃO : 0
Respeito as regras :
![-](https://2img.net/i/empty.gif)
» como acessar variáveis de outros scripts
» Acessar outros scripts?
» [TUTORIAL] Acessar propriedades dos SHADERS através de SCRIPTS
» Acessar variáveis
» ACESSAR VARIAVEIS DO CHARACTER CONTROLLER
» Acessar outros scripts?
» [TUTORIAL] Acessar propriedades dos SHADERS através de SCRIPTS
» Acessar variáveis
» ACESSAR VARIAVEIS DO CHARACTER CONTROLLER
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos