Como acessar uma variável de outro script sem saber o objeto?
3 participantes
Página 1 de 1
Como acessar uma variável de outro script sem saber o objeto?
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?
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- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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.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?
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
Pokedlg escreveu: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.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?
Nunca fiz uma variável estática. Gostaria de ajuda sim.
Esqueci de dizer que ambas as variáveis são float.
Atho- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
No script AAtho escreveu:Nunca fiz uma variável estática. Gostaria de ajuda sim.
Esqueci de dizer que ambas as variáveis são float.
- 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 () {
}
}
- 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- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
Pokedlg escreveu:No script AAtho 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 B:
- 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 () {
}
}
- 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- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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):
Quando colocar um valor, irá aparecer os objetos para vc colocar:
Depois é só colocar os objetos um em cada elemento.
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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.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):
Quando colocar um valor, irá aparecer os objetos para vc colocar:
Depois é só colocar os objetos um em cada elemento.
Muito Obrigado mesmo.
Atho- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?Pokedlg escreveu:D boa man, dnd
Atho- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
A unica coisa que sei sobre Photon é que ele serve para jogos multiplayers , mas nao sei como usa naoAtho escreveu:Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?Pokedlg escreveu:D boa man, dnd
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
De boas. Valeu cara. Abraço e sucesso pra ti.Pokedlg escreveu:A unica coisa que sei sobre Photon é que ele serve para jogos multiplayers , mas nao sei como usa naoAtho escreveu:Vou aproveitar pra fazer oura pergunta. Tu entende algo de Photon na unity?Pokedlg escreveu:D boa man, dnd
Atho- Membro
- PONTOS : 1665
REPUTAÇÃO : 11
Idade : 30
Áreas de atuação : Programador de Jogos Digitais em C# na Unity
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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 !
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- Membro
- PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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'
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- Membro
- PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
[list=linenums]
[*]e quando fica static tambem nao consigo linkar no
[*]meu canvas")na verdade nao consigo linkar no //public static InputField Asstorrer
[/list]
[*]e quando fica static tambem nao consigo linkar no
[*]meu canvas")na verdade nao consigo linkar no //public static InputField Asstorrer
[/list]
Portela- Membro
- PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
Desculpa demorar para responder, mas pra que server InputField?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]
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
Desculpa demorar para responder, mas pra que server InputField?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]
Pokedlg- ProgramadorMaster
- PONTOS : 2089
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
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- Membro
- PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras :
Re: Como acessar uma variável de outro script sem saber o objeto?
mas tipo desisti, ta tando muito problema e coloquei outro tipo de intereção com os objetos em cenaPokedlg escreveu:Desculpa demorar para responder, mas pra que server InputField?
Portela- Membro
- PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras :
Tópicos semelhantes
» Como acessar variável de um script usando outro script (Entre e entenda).
» Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
» Como saber se um objeto UI (Do Canvas) está em cima de outro?
» Como acesso uma variável em outro script?
» Como acessar a função de um outro Script? (Unity)
» Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
» Como saber se um objeto UI (Do Canvas) está em cima de outro?
» Como acesso uma variável em outro script?
» Como acessar a função de um outro Script? (Unity)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos