Como Criar uma nova classe com as mesmas variaveis?
4 participantes
Página 1 de 1
Como Criar uma nova classe com as mesmas variaveis?
Boa noite galera, alguem sabe me dizer como criar uma nova classe com as mesmas variaveis? por ex eu crio um script com as seguintes variaveis
ai se eu clicar em um botao no inspector ela add mais uma classe com essas mesmas variaveis pra mim poder configurar de outra forma
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Exemplo : MonoBehaviour
{
public bool exemplo1;
public int exemplo2;
public float exemplo3;
public string exemplo4;
}
public override void OnInspectorGUI()
{
}
ai se eu clicar em um botao no inspector ela add mais uma classe com essas mesmas variaveis pra mim poder configurar de outra forma
Unidade3d5- Avançado
- PONTOS : 3031
REPUTAÇÃO : 28
Respeito as regras :
Re: Como Criar uma nova classe com as mesmas variaveis?
De uma olhada:
Você pode quando for declarar esta classe você pode fazer dela uma array:
Você pode quando for declarar esta classe você pode fazer dela uma array:
- Código:
public Exemplo[] exemplo;
rafaelllsd- ProgramadorMaster
- PONTOS : 5243
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Como Criar uma nova classe com as mesmas variaveis?
Se você quer exatamente as mesmas variáveis só que com valores diferentes, faz alguma outra classe herdar dela, assim:
public class Exemplo2 : Exemplo{
}
public class Exemplo2 : Exemplo{
}
Re: Como Criar uma nova classe com as mesmas variaveis?
Vlw galera,vou dar uma olhada qualquer coisa eu volto aki kk
Unidade3d5- Avançado
- PONTOS : 3031
REPUTAÇÃO : 28
Respeito as regras :
Re: Como Criar uma nova classe com as mesmas variaveis?
int guys, eu consegui fazer oque queria porem so funciona as opçoes da primeira "array" a segunda array ja nao funfa alguma dica?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System;
[Serializable]
public class teste
{
[HideInInspector]
public UnityEngine.AI.NavMeshAgent nav;
[HideInInspector]
public Vector3 position;
public float DistSeguir;
public float DistParar;
[HideInInspector]
public Easy_ID[] Alvos;
public int indiceAlvoMaisProximo = 0;
}
public class Marcos : MonoBehaviour
{
//Referencia ao NavMeshAgent//
public teste[] Testes;
private void Start()
{
for (int x = 0; x < Testes.Length; x++)
if (GetComponent<UnityEngine.AI.NavMeshAgent>())
{
Testes[x].nav = GetComponent<UnityEngine.AI.NavMeshAgent>();
}
}
void Update()
{
for (int x = 0; x < Testes.Length; x++)
Testes[x].Alvos = GameObject.FindObjectsOfType<Easy_ID>();
ChecarAlvos();
}
void ChecarAlvos()
{
for (int x = 0; x < Testes[x].Alvos.Length; x++)
{
float distanciaMaxDeVisao = Testes[x].DistSeguir;
float DistanciaDeVisaoAtual = Vector3.Distance(transform.position, Testes[x].Alvos[x].transform.position);
if (DistanciaDeVisaoAtual < distanciaMaxDeVisao)
{
distanciaMaxDeVisao = DistanciaDeVisaoAtual;
Testes[x].indiceAlvoMaisProximo = x;
Testes[x].nav.speed = 2;
Testes[x].nav.destination = Testes[x].Alvos[x].transform.position;
}
}
for (int x = 0; x < Testes[x].Alvos.Length; x++)
{
float distanciaMaxDeCaça = Testes[x].DistParar;
float DistanciaDeCaçaAtual = Vector3.Distance(transform.position, Testes[x].Alvos[x].transform.position);
if (DistanciaDeCaçaAtual < distanciaMaxDeCaça)
{
distanciaMaxDeCaça = DistanciaDeCaçaAtual;
Testes[x].indiceAlvoMaisProximo = x;
Testes[x].nav.speed = 0;
}
}
}
}
Unidade3d5- Avançado
- PONTOS : 3031
REPUTAÇÃO : 28
Respeito as regras :
Unidade3d5- Avançado
- PONTOS : 3031
REPUTAÇÃO : 28
Respeito as regras :
Re: Como Criar uma nova classe com as mesmas variaveis?
a parte do Testes[x].Alvos[x].transform.position esta aparente errada pois vc deveria verificar os alvos de forma separada. o mesmo para indiceAlvoMaisProximo pois o valor final dela vai ser o tamanho do array.
os seus dois fors são equivalentes a um for assim.
pq eu n entendi vc tem um array de testes e um de alvos entao vc deve fazer primeiro a execuçao do testes e depois o de alvos
bom tem bem mais erros do q isso! mais como to pelo celular e o máximo q posso fazer por ti.
quebra a cabeça ai q vc consegue!
os seus dois fors são equivalentes a um for assim.
- Código:
for (int x = 0; x < Testes[x].Alvos.Length; x++)
{
float distanciaMaxDeCaça = Testes[x].DistParar;
float distanciaMaxDeVisao = Testes[x].DistSeguir;
float DistanciaDeVisaoAtual = Vector3.Distance(transform.position, Testes[x].Alvos[x].transform.position);
float DistanciaDeCaçaAtual = DistanciaDeVisaoAtual;
if (DistanciaDeVisaoAtual < distanciaMaxDeVisao)
{
distanciaMaxDeVisao = DistanciaDeVisaoAtual;
Testes[x].indiceAlvoMaisProximo = x;
Testes[x].nav.speed = 2;
Testes[x].nav.destination = Testes[x].Alvos[x].transform.position;
}
if (DistanciaDeCaçaAtual < distanciaMaxDeCaça)
{
distanciaMaxDeCaça = DistanciaDeCaçaAtual;
Testes[x].nav.speed = 0;
}
}
- Código:
foreach(var test in Testes)
{
//codigo
foreach(var alvos in test.Alvos)
{
//codigo
}
}
bom tem bem mais erros do q isso! mais como to pelo celular e o máximo q posso fazer por ti.
quebra a cabeça ai q vc consegue!
luKkaSs- MembroAvançado
- PONTOS : 3354
REPUTAÇÃO : 19
Idade : 28
Respeito as regras :
Tópicos semelhantes
» Como criar botão de nova tentativa
» Criar porta, como acessar variáveis de GameObjeto diferente com RayCast
» [Duvida] Como fazer classe A responde a classe B que influencia na C?
» [Duvida] Problemas com Variaveis/Vetores/Classe
» [Dúvida] Como salvar uma classe vetorizada (js)
» Criar porta, como acessar variáveis de GameObjeto diferente com RayCast
» [Duvida] Como fazer classe A responde a classe B que influencia na C?
» [Duvida] Problemas com Variaveis/Vetores/Classe
» [Dúvida] Como salvar uma classe vetorizada (js)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos