SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
mensagem na tela
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
como fazer um sistema de Livro e paginas na Unity?
como mudar a qualidade do ambient occlusion pelo script?
alterar material
[TUTORIAL] Sistema de Combos (Mobile e PC)
[JOGO] Darkman jogo de puzzle | Pixel Art
AGAIN ! [Game Jam]
Tela de escolher um nome ativa quando sai e entra na cena de novo...
Fazer Objeto sair de 1 lado da camera e entrar do outro lado em seguida
[TUTORIAL] COMO CRIAR UM JOGO DE LUTA 2D UNITY 2021
Copiar um componente de um GameObject para outro já configurado?
Idioma automático por país??
[TUTORIAL] Sistema de diálogo/mensagens na Unity
Rotação ao colidir.
travar RigidBody2D através de codigo
Como resolver problema da mesh não renderizar após fazer a build
[RESOLVIDO] Trocar o áudio dependendo da tag do terreno
Funcionalidade Vuforia - UNITY 3D
RANDOMIZAR ATAQUES
Unity + Photon 2
Criar app pra mais de um idioma
Função de "aspirar" mobs, itens, etc.
[RESOLVIDO]GetKeyUp ativando sozinho
Posso controlar o wheelsCollider.rpm?
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Personagem dentro da agua
[RESOLVIDO] Sript de pegar itens no cenario
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Fazer o Player colar em uma base redonda
tem como altera o nome no forum
Como detectar se teclado ou controle foi conectado???
erro NO MONOBEHAVIOUR SCRIPTS IN THE FILE
Seleção de Personagem
[ASSET PACKAGE] Game Check Update
Adicionar mais um ataque ao inimigo.
Como faço para Camera ignorar um objeto?
Segundo Teaser do meu novo jogo galera, Sanatório Macabro. Em breve
[RESOLVIDO] VSCode não mostra erros nem identa o Código
Baixem meu jogo O Labirinto v1.25 completo e gratuito
Player girando e animação não executa
[RESOLVIDO] Problema com C# e Rigidbody
[RESOLVIDO] Recarregar arma.
Como acessar o Smoothness das texturas do terrain
Sistema de Tiro com Raycast
Velocidade com Button UI.
ERRO AO UPAR NA GOOGLE PLAY STORE
me ajuda por favor
Animaçoes não executa, nem a IDLE
Mini-Map
[TUTORIAL] Como o C# funciona
A Imagem do Objeto não muda
Animaçoes nao executa mais, nem a Idle
[RESOLVIDO] Como usar um Botao(GameObject) igual a um Botao(UI) no Mobile
Sistema de Tiro com Raycast
Algum modelador bom? Compro Modelagem
[RESOLVIDO] Rotação invertida, como resolvo isso??
carregamento de dados entre cenas
Blender bugado ????
AUDIO EM UM DETERMINADO MOMENTO
Dúvida sobre modificação do Event Trigger por scritpt
Carro dá spawn no ar
U2019 - Animações e efeitos após jogador levar hit? por outro jogador?
Não consigo Desabilitar um efeito especifico no pós processamento...
Como Desativar e mudar qualidade de sombra por código???
[TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
Eu estou com dúvida de como instalar a unity com Unity Hub
Pulo "muito Alto"
rotação e aceleração.
Movimentação mobile.
Ativar botão
De Blender pra Unity - Cell Fracture não funciona!
sugestões de otimização?
Carregamento com porcentagem...
[RESOLVIDO] Blender Cell Fracture não aparece no Add-ons - Ajuda!
Movimentação - rotação
Erro Codigo de movimentação.
Cronometro 3,2,1 fica bugado ajuda aee...
[Problema] Ativo o Animator e o boneco não sai do lugar
Morre pausa e aparece botao pra reiniciar mas reinicia o jogo pausado
Script de movimentação e câmera não executa corretamente
FBX não gera sombra
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
Sketchup pede para aumentar o projeto
Mudar cor da faixa de texto.
Mexer em variavel de objeto instanciado
Como utilizar o design pattern MVC na Unity?
[RESOLVIDO] RIGIDYBODY tá pulando sozinho pra longe. O que pode ser?
[RESOLVIDO] Compatibilidade e travamentos - unity android
Alguem sabe um meio pra fazer um habitat com criaturas?
[RESOLVIDO] Ajuda com script simples
[RESOLVIDO] Como trocar uma imagem ao clicar num botão em unity c#
[RESOLVIDO] Ponto A ao Ponto B em um determinado tempo
[RESOLVIDO] Duvida Unity (C#)
[RESOLVIDO] Bug no tittle screen
[RESOLVIDO] Erro CS0122
Projeto em desenvolvimento Yoda Runner.
[RESOLVIDO] Duvida Unity (C#)
Duvida com inimigo
Ontem à(s) 9:08 pm
Ontem à(s) 5:06 pm
Ontem à(s) 12:53 pm
Qua Ago 04, 2021 8:07 pm
Qua Ago 04, 2021 7:35 pm
Qua Ago 04, 2021 7:06 pm
Seg Ago 02, 2021 11:33 pm
Seg Ago 02, 2021 1:46 pm
Dom Ago 01, 2021 11:28 pm
Dom Ago 01, 2021 10:34 pm
Dom Ago 01, 2021 4:58 pm
Dom Ago 01, 2021 1:41 pm
Dom Ago 01, 2021 12:41 pm
Dom Ago 01, 2021 11:23 am
Sex Jul 30, 2021 2:19 pm
Sex Jul 30, 2021 12:07 pm
Sex Jul 30, 2021 8:50 am
Qui Jul 29, 2021 9:45 pm
Qui Jul 29, 2021 9:43 pm
Qui Jul 29, 2021 10:54 am
Qua Jul 28, 2021 6:12 pm
Qua Jul 28, 2021 5:15 pm
Qua Jul 28, 2021 4:39 pm
Qua Jul 28, 2021 2:28 pm
Qua Jul 28, 2021 9:36 am
Ter Jul 27, 2021 1:20 am
Dom Jul 25, 2021 11:12 pm
Dom Jul 25, 2021 10:51 pm
Dom Jul 25, 2021 6:16 pm
Dom Jul 25, 2021 4:03 pm
Dom Jul 25, 2021 12:39 pm
Sab Jul 24, 2021 11:02 pm
Sab Jul 24, 2021 9:35 pm
Sab Jul 24, 2021 12:11 pm
Sab Jul 24, 2021 3:55 am
Sex Jul 23, 2021 4:02 pm
Sex Jul 23, 2021 2:26 pm
Sex Jul 23, 2021 11:50 am
Qui Jul 22, 2021 8:08 pm
Qui Jul 22, 2021 3:38 pm
Qui Jul 22, 2021 3:00 pm
Qui Jul 22, 2021 10:47 am
Qua Jul 21, 2021 6:09 pm
Qua Jul 21, 2021 6:07 pm
Qua Jul 21, 2021 3:41 pm
Qua Jul 21, 2021 5:00 am
Qua Jul 21, 2021 12:30 am
Ter Jul 20, 2021 7:17 pm
Ter Jul 20, 2021 1:21 pm
Ter Jul 20, 2021 10:24 am
Ter Jul 20, 2021 8:27 am
Ter Jul 20, 2021 6:23 am
Ter Jul 20, 2021 6:09 am
Seg Jul 19, 2021 9:06 pm
Seg Jul 19, 2021 9:09 am
Seg Jul 19, 2021 12:22 am
Dom Jul 18, 2021 11:20 pm
Dom Jul 18, 2021 9:10 pm
Dom Jul 18, 2021 2:55 pm
Dom Jul 18, 2021 11:17 am
Sab Jul 17, 2021 11:10 pm
Sab Jul 17, 2021 11:00 pm
Sab Jul 17, 2021 10:49 pm
Sab Jul 17, 2021 10:38 pm
Sab Jul 17, 2021 7:53 pm
Sab Jul 17, 2021 11:20 am
Sab Jul 17, 2021 11:12 am
Sab Jul 17, 2021 6:52 am
Sab Jul 17, 2021 6:39 am
Sab Jul 17, 2021 6:32 am
Sab Jul 17, 2021 6:28 am
Sab Jul 17, 2021 1:16 am
Sex Jul 16, 2021 7:29 pm
Sex Jul 16, 2021 5:40 pm
Sex Jul 16, 2021 5:02 pm
Sex Jul 16, 2021 12:49 pm
Sex Jul 16, 2021 9:25 am
Sex Jul 16, 2021 12:20 am
Qui Jul 15, 2021 6:16 pm
Qui Jul 15, 2021 5:06 pm
Qua Jul 14, 2021 5:59 pm
Qua Jul 14, 2021 5:35 pm
Qua Jul 14, 2021 11:02 am
Seg Jul 12, 2021 9:27 pm
Seg Jul 12, 2021 12:13 pm
Dom Jul 11, 2021 11:08 pm
Dom Jul 11, 2021 10:30 pm
Dom Jul 11, 2021 7:13 pm
Sab Jul 10, 2021 7:05 pm
Sab Jul 10, 2021 10:05 am
Sex Jul 09, 2021 2:51 pm
Qui Jul 08, 2021 7:36 pm
Qui Jul 08, 2021 7:13 pm
Qui Jul 08, 2021 1:53 pm
Qui Jul 08, 2021 1:14 pm
Qui Jul 08, 2021 12:59 pm
Qua Jul 07, 2021 11:48 pm
Qua Jul 07, 2021 10:13 pm
Qua Jul 07, 2021 2:14 pm
gui78h3
Lecosouza
Fagner
edugamer69
edugamer69
Pokedlg
PauloFR
dutrabr100
stratengine
felipekieling
RGT
Rangel Oblivion
diegopds
RGT2020
Pokedlg
MayLeone
Crash Psycho
Fagner
Fagner
ViniciusTKH
Regis2030
Fagner
dezorolon
dutrabr100
Fagner
danilojpbr212
Pokedlg
kaiquecachoeira1
VitinRuas
Lester202123
bruno92
Fagner
aikow
Pokedlg
FelipeSouza11
ViniciusTKH
Charlesoff
Patrick
WLCS22
jeancvo3
MarcosSchultz
amanda.ilg
LucasBR
jeancvo3
SauloeArthur
PauloFR
JoelMJunior
cleitinhoRasta
jhonih00010
PauloFR
PauloFR
PauloFR
PauloFR
crazylagg
Valério
jhonih00010
jhonih00010
PauloFR
Crash Psycho
edu63
PauloFR
PauloFR
PauloFR
PauloFR
Fagner
PauloFR
Franttyck
PauloFR
PauloFR
PauloFR
PauloFR
WLCS22
Morpheus
jhonih00010
WLCS22
Fagner
NKKF
jhonih00010
MatheusTD
MarcosSchultz
Magnatah
Magnatah
Fagner
Charlesoff
MayLeone
MayLeone
MayLeone
RodrigoPrivilegium
Fagner
ProBrStalker
ronigleydson
a32515
RobsonRAS
VittorTGame23
brunera
patriicia
ffabim
VittorTGame23
jeancvo3

Como acessar uma variável de outro script sem saber o objeto?

3 participantes

Ir para baixo

DÚVIDA Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Seg Nov 16, 2020 11:29 pm

Olá pessoal. Estou precisando saber como eu conseguiria acessar a variável de outro script sem que precisasse referenciar o objeto que utiliza esse script? Apenas chamando o script mesmo. Tem como?

Exemplo:
- No script "A" contém a variável "valor1" e este script está associado a uma pedra.
- No script "B" contém a variável "valor2" e este script está associado ao player.

sei que para fazer a variável "valor1" ter o mesmo valor da variável "valor2" eu só precisaria colocar no script "A" o comando "valor1 = player.GetComponent<Script B>().valor2"

A questão é se tem como fazer a mesma coisa sem saber quem é o objeto que utiliza o script "B" (nesse caso, o player)? 

Seria possível? Como?

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Ter Nov 17, 2020 12:03 am

@Atho escreveu:Olá pessoal. Estou precisando saber como eu conseguiria acessar a variável de outro script sem que precisasse referenciar o objeto que utiliza esse script? Apenas chamando o script mesmo. Tem como?

Exemplo:
- No script "A" contém a variável "valor1" e este script está associado a uma pedra.
- No script "B" contém a variável "valor2" e este script está associado ao player.

sei que para fazer a variável "valor1" ter o mesmo valor da variável "valor2" eu só precisaria colocar no script "A" o comando "valor1 = player.GetComponent<Script B>().valor2"

A questão é se tem como fazer a mesma coisa sem saber quem é o objeto que utiliza o script "B" (nesse caso, o player)? 

Seria possível? Como?
Na verdade tem como vc referenciar o objeto criando uma public GameObject, seria bem mais rapido. Mas sem referenciar, vc pode acessar a variavel de outro script criando uma variavel static, a variavel static é usada para q outros scripts possam acessar elas mesmo estando em outros objetos, no caso a pedra e o player do seu exemplo. Se precisar de ajuda para fazer a varivael static é só falar.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Ter Nov 17, 2020 7:52 am

@Pokedlg escreveu:
@Atho escreveu:Olá pessoal. Estou precisando saber como eu conseguiria acessar a variável de outro script sem que precisasse referenciar o objeto que utiliza esse script? Apenas chamando o script mesmo. Tem como?

Exemplo:
- No script "A" contém a variável "valor1" e este script está associado a uma pedra.
- No script "B" contém a variável "valor2" e este script está associado ao player.

sei que para fazer a variável "valor1" ter o mesmo valor da variável "valor2" eu só precisaria colocar no script "A" o comando "valor1 = player.GetComponent<Script B>().valor2"

A questão é se tem como fazer a mesma coisa sem saber quem é o objeto que utiliza o script "B" (nesse caso, o player)? 

Seria possível? Como?
Na verdade tem como vc referenciar o objeto criando uma public GameObject, seria bem mais rapido. Mas sem referenciar, vc pode acessar a variavel de outro script criando uma variavel static, a variavel static é usada para q outros scripts possam acessar elas mesmo estando em outros objetos, no caso a pedra e o player do seu exemplo. Se precisar de ajuda para fazer a varivael static é só falar.

Nunca fiz uma variável estática. Gostaria de ajuda sim.

Esqueci de dizer que ambas as variáveis são float.

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Ter Nov 17, 2020 10:13 am

@Atho escreveu:Nunca fiz uma variável estática. Gostaria de ajuda sim.

Esqueci de dizer que ambas as variáveis são float.
No script A

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class ScriptA : MonoBehaviour {

    public static float valor1; //crie uma variavel statica
    

    
    void Start () {
        
    }
    
    
    void Update () {
        
    }
}
No script B:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptB : MonoBehaviour {
    
    public float valor2; //crie uma variavel no scriptB
  
    void Start () {
        ScrpitA.valor1 = valor2; //coloque o nome do scrpit q quer acessar a variavel estatica, coloque o nome dela e de a ela um valor

    }
    
    
    void Update () {
        
    }
}
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Ter Nov 17, 2020 10:22 pm

@Pokedlg escreveu:
@Atho escreveu:Nunca fiz uma variável estática. Gostaria de ajuda sim.

Esqueci de dizer que ambas as variáveis são float.
No script A

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class ScriptA : MonoBehaviour {

    public static float valor1; //crie uma variavel statica
    

    
    void Start () {
        
    }
    
    
    void Update () {
        
    }
}
No script B:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptB : MonoBehaviour {
    
    public float valor2; //crie uma variavel no scriptB
  
    void Start () {
        ScrpitA.valor1 = valor2; //coloque o nome do scrpit q quer acessar a variavel estatica, coloque o nome dela e de a ela um valor

    }
    
    
    void Update () {
        
    }
}


Nossa. MUITO obrigado mesmo. Resolveu meu problema.

Já que estou aqui vou aproveitar para tirar mais uma dúvida. Não sei se pode, caso não possa, só avisar que apago.

Eu fiz um sistema de spawn onde um objeto é instanciado em uma posição aleatória dentre duas posições que limitei. Isso eu fiz de boa.

Como fazer para que esse mesmo sistema consiga instanciar varios objetos diferentes aleatoriamente ao invés de só um? Vou enviar o script para que entenda.
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;

public class SpawnAlimentos : MonoBehaviour
{
    //Esse script todo foi feito pelo Emerson


    public Transform alimentoPrefab;

    public static float contador;

    public GameObject Play;

    public float spawnRate = 3f; //a cada 2 seg vai criar

 

    public Transform camera;

    // Start is called before the first frame update
    void Start()

    {
        InvokeRepeating("Spawn", spawnRate, spawnRate);

       

    }

    private void Spawn()
    {

        if (contador <= 3)
        {
            var doceTransform = Instantiate(alimentoPrefab, camera) as Transform;

           
          doceTransform.position = new Vector3(Random.Range(Random.Range(camera.transform.position.x + 10, camera.transform.position.x + 31), Random.Range(camera.transform.position.x - 10, camera.transform.position.x - 31)),
                                                Random.Range(Random.Range(camera.transform.position.y + 6,  camera.transform.position.y + 22), Random.Range(camera.transform.position.y - 6,  camera.transform.position.y - 22)),
                                                                                                                            0);


         
           
           
        }

     


    }

   

}

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Ter Nov 17, 2020 10:53 pm

Voce qr que instancie diferentes objetos? Exemplo: Aleatoriamente instancia, diferentes objetos, objeto 1, objeto 2, objeto 3... . É isso? É q n entendi mt bem sua prgnt
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Qua Nov 18, 2020 12:04 am

@Pokedlg escreveu:Voce qr que instancie diferentes objetos? Exemplo: Aleatoriamente instancia, diferentes objetos, objeto 1, objeto 2, objeto 3... . É isso? É q n entendi mt bem sua prgnt

Exatamente isso.

Quero que instancie varios objetos (objeto 1, objeto 2, objeto 3...) e que seja aleatório. O jogo decida qual será instanciado. 

O mesmo esquema que fiz no script porém com vários objetos, não apenas um.

Aí seriam criados objetos aleatórios em locais aleatórios dentro do cenário.

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Qua Nov 18, 2020 12:28 am

@Atho escreveu:
@Pokedlg escreveu:Voce qr que instancie diferentes objetos? Exemplo: Aleatoriamente instancia, diferentes objetos, objeto 1, objeto 2, objeto 3... . É isso? É q n entendi mt bem sua prgnt

Exatamente isso.

Quero que instancie varios objetos (objeto 1, objeto 2, objeto 3...) e que seja aleatório. O jogo decida qual será instanciado. 

O mesmo esquema que fiz no script porém com vários objetos, não apenas um.

Aí seriam criados objetos aleatórios em locais aleatórios dentro do cenário.

Vc terá que fazer uma array. Voce poderá modificar do jeito q desejar. Aqui está um exemplo:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script : MonoBehaviour {

   public GameObject[] objetos; //quantos objetos poderao ser gerados aleatoriamente
   public int objetoSorteado; //variavel com numero inteiro, será o valor gerado

   void Start () {
      objetoSorteado = Random.Range(0, objetos.Length); //irá gerar um valor aleatório entre 0 e o tamanho do vetor objetos
      Instantiate (objetos[objetoSorteado]); //irá instanciar o objeto de acordo com o valor gerado
   }
   
   void Update () {

   }
}


No inspector do unity, no valor Size coloque o tanto de objetos q vc qr q pode ser gerado (exemplo):

Como acessar uma variável de outro script sem saber o objeto? WG66z6zTppYpAAAAABJRU5ErkJggg==

Quando colocar um valor, irá aparecer os objetos para vc colocar:

Como acessar uma variável de outro script sem saber o objeto? PTxeIGCjUPygkPcdVASL4dbMFn37B5zF3BiIGGHEApSpAJI8FYDmzAxJAxL5sVn9fNuvuzn5MXBfcDES8JzAGOO45YBCxL5vV95fNynV+uVbkOsrtP+DJTox3L1ybF5uXeqgBAxHbnfT4VamHorZjKBacfRBpaGggazYHVgNWA2lqYNy4cdTHkLtY5Lb5tvmupxqwyxm7nLHLGauBTDVgIGIFlKmA6ukX1Y4l3Q7RQMRAxEDEaiBTDRiIWAFlKiD79U73611P82YgYiBiIGI1kKkGDESsgDIVUD39otqxpNtVGYgYiBiIWA1kqgEGkf8HVdBOimXg4CIAAAAASUVORK5CYII=

Depois é só colocar os objetos um em cada elemento.
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Sab Nov 21, 2020 9:48 am

@Pokedlg escreveu:
@Atho escreveu:
@Pokedlg escreveu:Voce qr que instancie diferentes objetos? Exemplo: Aleatoriamente instancia, diferentes objetos, objeto 1, objeto 2, objeto 3... . É isso? É q n entendi mt bem sua prgnt

Exatamente isso.

Quero que instancie varios objetos (objeto 1, objeto 2, objeto 3...) e que seja aleatório. O jogo decida qual será instanciado. 

O mesmo esquema que fiz no script porém com vários objetos, não apenas um.

Aí seriam criados objetos aleatórios em locais aleatórios dentro do cenário.

Vc terá que fazer uma array. Voce poderá modificar do jeito q desejar. Aqui está um exemplo:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script : MonoBehaviour {

 public GameObject[] objetos; //quantos objetos poderao ser gerados aleatoriamente
 public int objetoSorteado; //variavel com numero inteiro, será o valor gerado

 void Start () {
 objetoSorteado = Random.Range(0, objetos.Length); //irá gerar um valor aleatório entre 0 e o tamanho do vetor objetos
 Instantiate (objetos[objetoSorteado]); //irá instanciar o objeto de acordo com o valor gerado
 }
 
 void Update () {

 }
}


No inspector do unity, no valor Size coloque o tanto de objetos q vc qr q pode ser gerado (exemplo):

Como acessar uma variável de outro script sem saber o objeto? WG66z6zTppYpAAAAABJRU5ErkJggg==

Quando colocar um valor, irá aparecer os objetos para vc colocar:

Como acessar uma variável de outro script sem saber o objeto? PTxeIGCjUPygkPcdVASL4dbMFn37B5zF3BiIGGHEApSpAJI8FYDmzAxJAxL5sVn9fNuvuzn5MXBfcDES8JzAGOO45YBCxL5vV95fNynV+uVbkOsrtP+DJTox3L1ybF5uXeqgBAxHbnfT4VamHorZjKBacfRBpaGggazYHVgNWA2lqYNy4cdTHkLtY5Lb5tvmupxqwyxm7nLHLGauBTDVgIGIFlKmA6ukX1Y4l3Q7RQMRAxEDEaiBTDRiIWAFlKiD79U73611P82YgYiBiIGI1kKkGDESsgDIVUD39otqxpNtVGYgYiBiIWA1kqgEGkf8HVdBOimXg4CIAAAAASUVORK5CYII=

Depois é só colocar os objetos um em cada elemento.
Cara. Não sei exatamente porque a minha resposta não foi publicada aqui. Respondi no dia já. Não era minha intenção deixar no vácuo. Quero agradecer pelo auxílio. Acabei fazendo um pouco diferente do que sugeriste, mas a lógica usada por ti me fez conseguir chegar no que eu queria.
Muito Obrigado mesmo.

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Sab Nov 21, 2020 1:58 pm

D boa man, dnd Curti isso
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Sab Nov 21, 2020 2:40 pm

@Pokedlg escreveu:D boa man, dnd Curti isso
Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Sab Nov 21, 2020 4:31 pm

@Atho escreveu:
@Pokedlg escreveu:D boa man, dnd Curti isso
Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?
A unica coisa que sei sobre Photon é que ele serve para jogos multiplayers Closed Eyes , mas nao sei como usa nao
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Atho Dom Nov 22, 2020 11:17 am

@Pokedlg escreveu:
@Atho escreveu:
@Pokedlg escreveu:D boa man, dnd Curti isso
Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?
A unica coisa que sei sobre Photon é que ele serve para jogos multiplayers Closed Eyes , mas nao sei como usa nao
Risonho Risonho Risonho De boas. Valeu cara. Abraço e sucesso pra ti.

Atho
Iniciante
Iniciante

Masculino PONTOS : 686
REPUTAÇÃO : 8
Idade : 28
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Portela Dom Nov 22, 2020 4:03 pm

Gente não abri outro topicó porque creio que é relacionado, como referenciar o InputField de outro script para mudar o text do atual.
tava fazendo assim:
void Update(){
GetComponent<TextMesh>().text = PlayerManager.Asstorre.text;}


e Asstorre é um "public static InputField" dentro do PlayerManager.

mas ele dá o erro:

Object reference not set to an instance of an object
ASStorre.Update () (at Assets/Prefabs/ASStorre.cs:23)

help pls !
Portela
Portela
Membro
Membro

Masculino PONTOS : 531
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Dom Nov 22, 2020 4:32 pm

@Portela escreveu:Gente não abri outro topicó porque creio que é relacionado, como referenciar o InputField de outro script para mudar o text do atual.
tava fazendo assim:
void Update(){
GetComponent<TextMesh>().text = PlayerManager.Asstorre.text;}


e Asstorre é um "public static InputField" dentro do PlayerManager.

mas ele dá o erro:

Object reference not set to an instance of an object
ASStorre.Update () (at Assets/Prefabs/ASStorre.cs:23)

help pls !

Nao entendi, qual vc qr acessar. Manda os dois script
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Portela Dom Nov 22, 2020 4:50 pm

quero que o inputtext do script playerManager


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerManager : MonoBehaviour
{   

    public bool isLocalPlayer;

    Animator myAnim;
    
    public bool isAttack;

    public float attackTime;
    public GameObject prefab;
    public GameObject objetopai;
    public Vector3 posicao,rotacao;
    public Transform[] destinos;
    public Vector3 posicaoRes,rotacaoRes;
    public Vector3 posicaoTower,rotacaoTower;
    public static bool torre;
    public GameObject textCanvas;
    public static InputField Asstorrer;
    
    
    
    
    //public GameObject torrre;
    
    
    //public GameObject Respaw;
    


    void Awake()
    
    {
        
    
        
        myAnim = GetComponent<Animator> ();
    }
    // Start is called before the first frame update
    void Start()    
    {
        
        if(isLocalPlayer){
        
         Instantiate(prefab, posicao,Quaternion.Euler(rotacao), objetopai.transform);
         // Instantiate(torrre, posicaoTower,Quaternion.Euler(rotacaoTower));
         
        
        
        }
    }

    // Update is called once per frame
    void Update()
    {     

        if (isLocalPlayer) {
            

            Attack ();
            
            var h = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
            var v = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f;

            transform.Rotate (0, h, 0);
            transform.Translate (0, 0, v);

            if (h != 0 || v != 0) {
                
                UpdateAnimator ("IsWalk");
                UpdateStatustoServer ();
            }

            if (h == 0 && v == 0) 
            {
                UpdateAnimator ("IsIdle");
                NetworkManager.instance.EmitAnimation ("IsIdle");
            }
                


        }
    }


    public void Attack()
    {
         isAttack = Input.GetKey (KeyCode.A);

        if (isAttack)
        {
            UpdateAnimator ("IsAttack");

            NetworkManager.instance.EmitAnimation ("IsAttack");
        }
    }




    }
    public void Torre() 
    { 
        
        
        UpdateAnimator ("Torre");
            
        NetworkManager.instance.EmitAnimation ("Torre");
 
        
    }


    public void UpdatePosAndRot(Vector3 _pos, Quaternion _rot)
    {
        transform.position = _pos;

        transform.rotation = _rot;
         
        
        
    }
    public void UpdatePosAndRot2(Vector3 _pos, Quaternion _rot)
    {
        transform.position = _pos;

        transform.rotation = _rot;
 
        
    }


    IEnumerator StopAttack()
    {
        if (isAttack)
        {
            yield break; // if already attack... exit and wait attack is finished
        }

        isAttack = true; // we are now attack


        yield return new WaitForSeconds(attackTime); // wait for set attack animation time
        isAttack = false;


    }

    public void UpdateAnimator(string _animation)
    {
        
        switch (_animation) 
        {
            case"IsIdle":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Idle")) 
            {    myAnim.SetBool("IsWalkk",false);
                myAnim.SetTrigger ("IsIdle");
                
            }
            break;
            case"IsWalk":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Walk")) 
            {myAnim.SetBool("IsWalkk",true);
                myAnim.SetTrigger ("IsWalk");
            }
            break;
            case"IsDamage":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Damage")) 
            {
                myAnim.SetTrigger ("IsDamage");
            }
            break;
            case"IsAttack":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Attack")) 
            {
                myAnim.SetTrigger ("IsAttack");

                if (!isLocalPlayer)
                {

                    StartCoroutine ("StopAttack");
                }
            }
            break;
            case"IsDeath":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Death")) 
            {
                myAnim.SetTrigger ("IsDeath");
            }
            break;
             case"Torre":
            if (!myAnim.GetCurrentAnimatorStateInfo (0).IsName ("Torre")) 
            {  
              if(torre){
                  // Instantiate(torrre, posicaoTower,Quaternion.Euler(rotacaoTower));
            
               myAnim.SetTrigger ("IsTorre");
               
              }
                  
            }
            break;
            
            
        
    }
    }
        
 
    
   
    public void OnTriggerEnter(Collider collision){
        
        
        if((collision.gameObject.CompareTag("Tele"))){
            
            transform.position = destinos[Random.Range(0,destinos.Length)].transform.position;
 
        }
            if((collision.gameObject.CompareTag("Torre"))){
                if (isLocalPlayer) {
            textCanvas.SetActive(true);
                torre=true;
                
  
                }
                
                
                
    }
    }
        
      public void OnTriggerExit(Collider collision){
            if((collision.gameObject.CompareTag("Torre"))){
                textCanvas.SetActive(false);
                
                torre=false;
                
   
        
                         }
                         
}
}
    






altere o meshtext "texto 3d dentro da cena"  do outro script 'Asstorre'


Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ASStorre : MonoBehaviour

{
   
    // Start is called before the first frame update
    void Start()
    {
      // Asstorre=GetComponent<InputField> ();
       
    }

    // Update is called once per frame
    void Update()
    {
      
   //   if(torre){
      
      PlayerManager.Asstorrer= GetComponent<TextMesh>();(" e quando fica static tambem nao consigo linkar no
meu canvas")
      
   //   }
      
    }
}
Portela
Portela
Membro
Membro

Masculino PONTOS : 531
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Portela Dom Nov 22, 2020 5:05 pm

[list=linenums]
[*]e quando fica static tambem nao consigo linkar no
[*]meu canvas")na verdade  nao consigo linkar no //public static InputField Asstorrer



[/list]
Portela
Portela
Membro
Membro

Masculino PONTOS : 531
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Seg Nov 23, 2020 1:11 am

@Portela escreveu:[list=linenums]
[*]e quando fica static tambem nao consigo linkar no
[*]meu canvas")na verdade  nao consigo linkar no //public static InputField Asstorrer



[/list]
Desculpa demorar para responder, mas pra que server InputField?
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Pokedlg Seg Nov 23, 2020 1:13 am

@Portela escreveu:[list=linenums]
[*]e quando fica static tambem nao consigo linkar no
[*]meu canvas")na verdade  nao consigo linkar no //public static InputField Asstorrer



[/list]
Desculpa demorar para responder, mas pra que server InputField?
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1049
REPUTAÇÃO : 166
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Portela Seg Nov 23, 2020 6:39 am

@Pokedlg escreveu:Desculpa demorar para responder, mas pra que server InputField?

Seria para ativar um canvas dentro do playerprefab para ele colocar tipo uma "assinatura" no cenario.
Portela
Portela
Membro
Membro

Masculino PONTOS : 531
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como acessar uma variável de outro script sem saber o objeto?

Mensagem por Portela Seg Nov 23, 2020 6:40 am

@Pokedlg escreveu:Desculpa demorar para responder, mas pra que server InputField?
mas tipo desisti, ta tando muito problema e coloquei outro tipo de intereção com os objetos em cena :P
Portela
Portela
Membro
Membro

Masculino PONTOS : 531
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : Como acessar uma variável de outro script sem saber o objeto? WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo


 
Permissão neste fórum:
Você não pode responder aos tópicos