Como Trocar um Objeto Prefab
2 participantes
Página 1 de 1
Como Trocar um Objeto Prefab
Olá Pessoal
Estou Criando um Joguinho de Sobrevivência,
estou com Duvidas de Como Trocar um Objeto em Cena (Prefab)
EX: Construi um Poço no Blender em 3 Estágios Começo,Meio e Fim!
Quando Clico no Poço da Cena ele Começa no Estágio 1 (Começo),
depois de Alguns Cliques quando Atingir 50% o Obj (Prefab) se Troca por Outro que seria o Estagio 2 (meio)
e Finalmente Depois de Mais Alguns Clicks Ele Termina 100% e se Troca pelo Estagio 3 (Fim)
Fiz esse Script mas Estou Parado na Parte de Trocas do Obj (Prefab) não sei como Fazer
Agradeço desde Já Qualquer Ajuda!
Estou Criando um Joguinho de Sobrevivência,
estou com Duvidas de Como Trocar um Objeto em Cena (Prefab)
EX: Construi um Poço no Blender em 3 Estágios Começo,Meio e Fim!
Quando Clico no Poço da Cena ele Começa no Estágio 1 (Começo),
depois de Alguns Cliques quando Atingir 50% o Obj (Prefab) se Troca por Outro que seria o Estagio 2 (meio)
e Finalmente Depois de Mais Alguns Clicks Ele Termina 100% e se Troca pelo Estagio 3 (Fim)
Fiz esse Script mas Estou Parado na Parte de Trocas do Obj (Prefab) não sei como Fazer
- Código:
using UnityEngine;
using System.Collections;
public class TrocarObjetos : MonoBehaviour {
public GameObject[] Prefabs;
private int ListaObj = 1;
void OnTriggerStay () {
if (Input.GetMouseButtonDown (0)) {
if(ListaObj < Prefabs.Length){
gameObject = Prefabs[ListaObj];
ListaObj++;
}
else{
gameObject = Prefabs[0];
ListaObj = 1;
}
}
}
}
Agradeço desde Já Qualquer Ajuda!
Re: Como Trocar um Objeto Prefab
Bom o Seguinte Fiz Aqui Um script Bem Simples Porem funcional Vou explicar ele
Variáveis
Bom se e estiver apertando o botão 0 do Mouse e progresso for menor que 100
progress vai receber um valor randômico entre 0 e 10
logo se o progress for maior ou igual a ValueNewState que o valor para o próximo estado que no caso sera a troca de mesh (objetos) ValueNewState recebera mais igual a sim partindo para próximo estado
essa método sera responsável pela troca de objetos filho logo se os objetos filho for maior que 0 ele vai destruir o objeto do indexe 0 logo apos instanciando o novo objeto do novo estado e o index recebe ++
Objeto que contem esse script tem que começar com o objeto do primeiro estado para funcionar
caso não tenha intendido algo do script diga ai :D
Script
EDIT1: a variável de prefabs vai conter o 2 últimos estado logo o primeiro estado vai começar instanciado só pra lembrar :D
Variáveis
- Código:
public GameObject[] prefabs;
public float progress;
public float valueNewState;
public int objectindex;
Bom se e estiver apertando o botão 0 do Mouse e progresso for menor que 100
progress vai receber um valor randômico entre 0 e 10
logo se o progress for maior ou igual a ValueNewState que o valor para o próximo estado que no caso sera a troca de mesh (objetos) ValueNewState recebera mais igual a sim partindo para próximo estado
- Código:
void Update ()
{
if (Input.GetMouseButton(0) && progress < 100)
{
progress += Random.Range(0, 10);
}
if (progress >= valueNewState)
{
StateBuild();
valueNewState += valueNewState;
}
progress = Mathf.Clamp(progress, 0,100);
objectindex = Mathf.Clamp(objectindex, 0, prefabs.Length);
}
essa método sera responsável pela troca de objetos filho logo se os objetos filho for maior que 0 ele vai destruir o objeto do indexe 0 logo apos instanciando o novo objeto do novo estado e o index recebe ++
- Código:
private void StateBuild()
{
if (transform.childCount > 0)
{
Destroy(transform.GetChild(0).gameObject);
}
GameObject newMesh = Instantiate(prefabs[objectindex], transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
objectindex++;
}
Objeto que contem esse script tem que começar com o objeto do primeiro estado para funcionar
caso não tenha intendido algo do script diga ai :D
Script
EDIT1: a variável de prefabs vai conter o 2 últimos estado logo o primeiro estado vai começar instanciado só pra lembrar :D
- Código:
using UnityEngine;
using System.Collections;
public class Build : MonoBehaviour
{
public GameObject[] prefabs;
public float progress;
public float valueNewState;
public int objectindex;
void Start ()
{
}
void Update ()
{
if (Input.GetMouseButton(0) && progress < 100)
{
progress += Random.Range(0, 10);
}
if (progress >= valueNewState)
{
StateBuild();
valueNewState += valueNewState;
}
progress = Mathf.Clamp(progress, 0,100);
objectindex = Mathf.Clamp(objectindex, 0, prefabs.Length);
}
private void StateBuild()
{
if (transform.childCount > 0)
{
Destroy(transform.GetChild(0).gameObject);
}
GameObject newMesh = Instantiate(prefabs[objectindex], transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
objectindex++;
}
}
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Trocar um Objeto Prefab
Pow Show de Bola Amigo
Perfeito, mas ta Dando um Erro aqui nessa Linha
IndexOutOfRangeException: Array index is out of range.
Build.StateBuild () (at Assets/Andy/Scripts/Build.cs:44)
Build.Update () (at Assets/Andy/Scripts/Build.cs:27)
Perfeito, mas ta Dando um Erro aqui nessa Linha
IndexOutOfRangeException: Array index is out of range.
Build.StateBuild () (at Assets/Andy/Scripts/Build.cs:44)
Build.Update () (at Assets/Andy/Scripts/Build.cs:27)
Re: Como Trocar um Objeto Prefab
AndyShow escreveu:Pow Show de Bola Amigo
Perfeito, mas ta Dando um Erro aqui nessa Linha
GameObject newMesh = Instantiate(prefabs[objectindex], transform.position, transform.rotation) as GameObject; :44
vc coloco os dois objetos na matriz ?
qual e erro
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Trocar um Objeto Prefab
AndyShow escreveu:Pow Show de Bola Amigo
Perfeito, mas ta Dando um Erro aqui nessa Linha
GameObject newMesh = Instantiate(prefabs[objectindex], transform.position, transform.rotation) as GameObject; :44
vc coloco os dois objetos na matriz ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Trocar um Objeto Prefab
SimAndyShow escreveu:Vc diz Colocar os Objetos que vão ser Instanciados como Filhos?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Trocar um Objeto Prefab
Coloquei, Ele instancia o Segundo quando Atinge 100 mais não Destroi o Primeiro e não Instancia o Terceiro
Re: Como Trocar um Objeto Prefab
oquei São três poço certo logo são três estados
logo a montagem serar essa o poço 1 começara como o objecto filho o valueNewState sera 50 e na variável prefabs vc seta o poço 2 e 3 essa e a "configuração"
Não obtive nenhum erro com essa "configuração"
acho que não tinha explicado direito '-' malz
logo a montagem serar essa o poço 1 começara como o objecto filho o valueNewState sera 50 e na variável prefabs vc seta o poço 2 e 3 essa e a "configuração"
Não obtive nenhum erro com essa "configuração"
acho que não tinha explicado direito '-' malz
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Trocar um Objeto Prefab
WoooW
Deu Certinho Amigo,
Poxa Muito Obrigado Mesmo,
Agradeço de Coração, tava umas 2h Quebrando a Cabeça Aqui! o.O
Se Precisar de Algo que eu Puder Ajudar Conte Comigo!
Abraço Amigo! :D
Deu Certinho Amigo,
Poxa Muito Obrigado Mesmo,
Agradeço de Coração, tava umas 2h Quebrando a Cabeça Aqui! o.O
Se Precisar de Algo que eu Puder Ajudar Conte Comigo!
Abraço Amigo! :D
Re: Como Trocar um Objeto Prefab
:D se precisar novamente estarei aqui :DAndyShow escreveu:WoooW
Deu Certinho Amigo,
Poxa Muito Obrigado Mesmo,
Agradeço de Coração, tava umas 2h Quebrando a Cabeça Aqui! o.O
Se Precisar de Algo que eu Puder Ajudar Conte Comigo!
Abraço Amigo! :D
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] como fazer um objeto trocar de cor ao colidir com outro objeto
» Chamar objeto em jogo em um modelo prefab
» Duvida com Nome do Objeto Prefab (Clone)
» [RESOLVIDO] Encontrar um objeto que está dentro de um Prefab.
» Como fazer para um objeto não colidir com um "collider" e o outro objeto si
» Chamar objeto em jogo em um modelo prefab
» Duvida com Nome do Objeto Prefab (Clone)
» [RESOLVIDO] Encontrar um objeto que está dentro de um Prefab.
» Como fazer para um objeto não colidir com um "collider" e o outro objeto si
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos