me ajuda ak gnt
+3
iahGod
Manawydan
Weslley
7 participantes
Página 1 de 1
me ajuda ak gnt
glr como eu faco pa acessar variaveis de outro script, tipo assim.... vamo pensar em um sistema de armas (que por conhecidencia e no que eu estou trabalhando), ae tipo assim eu tenho um scrpt pa arma e otro pa gerenciar as animações e assim, no meu script de animaçoes acabei de implementar a animação de reload e quero q ela toque quando eu apertar r e uma variavel do script da arma estiver true tipo assim
- Código:
if (Input.GetKeyDown (KeyCode.R) && PodeRecarregar = true) {
ControladorSandy.SetBool ("Recarga", true);
}
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
basta fazer uma variável da classe e depois procurar o objeto que esta com essa classe
assim vc consegue acessar todas as variáveis e métodos públicos
- Código:
private NomeDaClasse minhaClasse;
Void Start()
{
minhaClasee = FindObjectOfType(typeof(NomeDaClasse)) as NomeDaClasse
}
assim vc consegue acessar todas as variáveis e métodos públicos
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: me ajuda ak gnt
voce pode criar uma variavel que armazena a arma atual e sendo assim verificar se nessa variavel PodeRecarregar é verdadeiro, esse PodeRecarregar deve ser public
Re: me ajuda ak gnt
cm assim wesley? eu não estou entendendo
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
poderia ser mais claro?
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
Basta você colocar assim:anizioNoob escreveu:glr como eu faco pa acessar variaveis de outro script, tipo assim.... vamo pensar em um sistema de armas (que por conhecidencia e no que eu estou trabalhando), ae tipo assim eu tenho um scrpt pa arma e otro pa gerenciar as animações e assim, no meu script de animaçoes acabei de implementar a animação de reload e quero q ela toque quando eu apertar r e uma variavel do script da arma estiver true tipo assimso q esse Pode recarregar e de outro script, como eu vou saber se ele esta ativo para meu outro scrpt reconhecer isso e tocar a animação?
- Código:
if (Input.GetKeyDown (KeyCode.R) && PodeRecarregar = true) {
ControladorSandy.SetBool ("Recarga", true);
}
- Código:
if (Input.GetKeyDown (KeyCode.R) && GetComponent<NomeScriptDaArma>().NomeDaVariavelScriptArma == true) {
ControladorSandy.SetBool ("Recarga", true);
}
Re: me ajuda ak gnt
Vale lembrar que isso só vai funcionar se as classes estiverem no mesmo objeto
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: me ajuda ak gnt
no seu script de arma voce pode ter uma variavel publica e estatica que seria a arma que o player esta usando atualmente, e a todo momento que ele trocar de arma voce faz a variavel ArmaAtual receber essa arma que ele trocou " ArmaAtual = ..."
pra declarar essa variavel estatica pode fazer isso:
Ai sua verificação seria mais ou menos assim:
pra declarar essa variavel estatica pode fazer isso:
- Código:
public class Arma: MonoBehaviour{
// variavel estatica
public static Arma ArmaAtual;
}
Ai sua verificação seria mais ou menos assim:
- Código:
if (Input.GetKeyDown (KeyCode.R) && Arma.ArmaAtual!= null && Arma.ArmaAtual.PodeRecarregar == true) {
ControladorSandy.SetBool ("Recarga", true);
}
Re: me ajuda ak gnt
glr quero saber se eu estou certo, se eu utilizo o meu script de animação ak em baixo \/
- Código:
using UnityEngine;
using System.Collections;
public class Animacoes : MonoBehaviour {
private Animator ControladorSandy;
private float DistanciaChao;
void Start () {
ControladorSandy = GetComponent<Animator> ();
Class = FindObjectOfType (typeof(Arma)) as Arma;
}
void Update () {
if (Input.GetKey (KeyCode.W)) {
ControladorSandy.SetFloat ("Andando", 1);
}
if (Input.GetKeyUp (KeyCode.W)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.S)) {
ControladorSandy.SetFloat ("Andando", -1);
}
if (Input.GetKeyUp (KeyCode.S)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.A)) {
ControladorSandy.SetBool ("AndandoEsquerda", true);
}
if (Input.GetKeyUp (KeyCode.A)) {
ControladorSandy.SetBool ("AndandoEsquerda", false);
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.D)) {
ControladorSandy.SetBool ("AndandoDireita", true);
}
if (Input.GetKeyUp (KeyCode.D)) {
ControladorSandy.SetBool ("AndandoDireita", false);
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKeyDown (KeyCode.Space)) {
ControladorSandy.SetBool ("Pulo", true);
}
if (Input.GetKeyUp (KeyCode.Space)) {
ControladorSandy.SetBool ("Pulo", false);
}
if (Input.GetKey (KeyCode.LeftShift)) {
ControladorSandy.SetFloat ("Andando", 2);
}
if (Input.GetKeyUp (KeyCode.LeftShift)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.Mouse1)) {
ControladorSandy.SetBool ("Mirando", true);
if(Input.GetKey (KeyCode.Mouse0)) {
ControladorSandy.SetBool("Atirando", true);
}
if(Input.GetKeyUp (KeyCode.Mouse0)) {
ControladorSandy.SetBool("Atirando", false);
}
}
if (Input.GetKeyUp (KeyCode.Mouse1)) {
ControladorSandy.SetBool ("Mirando", false);
}
if (Input.GetKeyDown (KeyCode.R)) {
ControladorSandy.SetBool ("Recarga", true);
}
if (Input.GetKeyUp (KeyCode.R)) {
ControladorSandy.SetBool ("Recarga", false);
}
}
}
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
anizioNoob escreveu:glr quero saber se eu estou certo, se eu utilizo o meu script de animação ak em baixo \/e tirar o get component da void start então linkar o animator manualmente, sendo q o meu script de animação esta na arma, o animator deixará de funcionar?
- Código:
using UnityEngine;
using System.Collections;
public class Animacoes : MonoBehaviour {
private Animator ControladorSandy;
private float DistanciaChao;
void Start () {
ControladorSandy = GetComponent<Animator> ();
Class = FindObjectOfType (typeof(Arma)) as Arma;
}
void Update () {
if (Input.GetKey (KeyCode.W)) {
ControladorSandy.SetFloat ("Andando", 1);
}
if (Input.GetKeyUp (KeyCode.W)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.S)) {
ControladorSandy.SetFloat ("Andando", -1);
}
if (Input.GetKeyUp (KeyCode.S)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.A)) {
ControladorSandy.SetBool ("AndandoEsquerda", true);
}
if (Input.GetKeyUp (KeyCode.A)) {
ControladorSandy.SetBool ("AndandoEsquerda", false);
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.D)) {
ControladorSandy.SetBool ("AndandoDireita", true);
}
if (Input.GetKeyUp (KeyCode.D)) {
ControladorSandy.SetBool ("AndandoDireita", false);
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKeyDown (KeyCode.Space)) {
ControladorSandy.SetBool ("Pulo", true);
}
if (Input.GetKeyUp (KeyCode.Space)) {
ControladorSandy.SetBool ("Pulo", false);
}
if (Input.GetKey (KeyCode.LeftShift)) {
ControladorSandy.SetFloat ("Andando", 2);
}
if (Input.GetKeyUp (KeyCode.LeftShift)) {
ControladorSandy.SetFloat ("Andando", 0);
}
if (Input.GetKey (KeyCode.Mouse1)) {
ControladorSandy.SetBool ("Mirando", true);
if(Input.GetKey (KeyCode.Mouse0)) {
ControladorSandy.SetBool("Atirando", true);
}
if(Input.GetKeyUp (KeyCode.Mouse0)) {
ControladorSandy.SetBool("Atirando", false);
}
}
if (Input.GetKeyUp (KeyCode.Mouse1)) {
ControladorSandy.SetBool ("Mirando", false);
}
if (Input.GetKeyDown (KeyCode.R)) {
ControladorSandy.SetBool ("Recarga", true);
}
if (Input.GetKeyUp (KeyCode.R)) {
ControladorSandy.SetBool ("Recarga", false);
}
}
}
Olha eu Sempre Faço Assim:
- Código:
public GameObject Arma; // Aqui vc Linca o Objeto com Script
private GameObject ScriptDaArma; // Um Atalho pra vc nao Precisar Toda vez Digitar Meia Biblia pra Acessar o Script
void Start(){
ScriptDaArma= Arma.GetComponent<NomeDoScriptqueVoceQuerAcessar>(); // Aqui vc Diz que o Script que vc Quer Acessar vem do Objeto Arma, e o Nome é NomeDoScriptqueVoceQuerAcessar
}
ai Quando QuiserAcessar ou Mudar o Script da Arma é só Fazer Assim:
ScriptDaArma.AddBalas +=1;
ScriptDaArma.Regarregar = true; Etc...
Se Não Entendeu...Fala ai!
Re: me ajuda ak gnt
glr como eu detecto se uma animação esta tocando no meu animator? tipo eu to lá atirando eae acaba as bala então vou recarregar e tipo se eu tou recarregando mas qnd eu tou recarregarndo eu posso atirar mas eu não qro isso
então eu queria detectar por meio de script se a animação de reload está tocando
então eu queria detectar por meio de script se a animação de reload está tocando
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
Cria Bolleanas na ArmaanizioNoob escreveu:glr como eu detecto se uma animação esta tocando no meu animator? tipo eu to lá atirando eae acaba as bala então vou recarregar e tipo se eu tou recarregando mas qnd eu tou recarregarndo eu posso atirar mas eu não qro isso
então eu queria detectar por meio de script se a animação de reload está tocando
EstaCarregando = false;
Pode Atirar = true;
e no Script da Animação vc faz um
if(EstaCarregando == true){
PodeAtirar = false;
}
Para Detectar se uma Animação está sendo Executada:
- Código:
if (GetComponent<Animator>().isPlaying) {
PodeAtirar = false;
}
Algo Assim!
Re: me ajuda ak gnt
acho q vc não entendeu, eu quero uma forma de saber se a animação de recarregar esta tocando sabe
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
anizioNoob escreveu:acho q vc não entendeu, eu quero uma forma de saber se a animação de recarregar esta tocando sabe
- Código:
if(GetComponent<Animation>().IsPlaying("NomeAnimacaoCarregando")){
Debug.Log ("EstaTocando");
}
isso?
Re: me ajuda ak gnt
tente usar:
http://docs.unity3d.com/ScriptReference/Animator.GetCurrentAnimatorStateInfo.html
http://docs.unity3d.com/ScriptReference/Animator.GetCurrentAnimatorStateInfo.html
Re: me ajuda ak gnt
estou usando animator ;-;
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
Até onde me aprofundei no Animator, não lembro de ter encontrado um IsPlaying... geralmente você checa o estado atual da animação, exemplo:
- Código:
if (GetComponent<Animator> ().GetCurrentAnimatorStateInfo (0).IsName ("NomeDaAnimacao")) {
}
Re: me ajuda ak gnt
isso marcos mas como q vou diferenciar se está atico ou não? por acaso e se eu por 1 para ativo e 0 para inativo?
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: me ajuda ak gnt
não e q agr tou usando corrotinas mas vlw ae vai q eu use isso mas pa frente
anizioNoob- Avançado
- PONTOS : 3477
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Tópicos semelhantes
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com uma IA
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com uma IA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos