Problema em Saber Qual Objeto vai ser Spawnado
3 participantes
Página 1 de 1
Problema em Saber Qual Objeto vai ser Spawnado
estou fazendo um jogo tipo bubble with, porem em 3d, criei as bolas que vão ser spawnadas randomicamente, e criei as flechas que vão atingir essas bolas, ajustei por tag pra cada flexa da sua cor destruir a bola da cor dela, mas as flechas também spawna aleatoriamente, eu queria saber qual a cor da flecha pra poder saber em qual bola atirar.
imagem: https://ibb.co/nnp74X1
Script das Flechas
Script que randomiza a flecha
imagem: https://ibb.co/nnp74X1
Script das Flechas
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FlexaAzul : MonoBehaviour
{
public Rigidbody rb;
public float Velocidade;
public float VidaFlexa = 2;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
rb.velocity = transform.forward * Velocidade;
Destroy(gameObject, VidaFlexa);
}
private void OnCollisionEnter(Collision collision)
{
if (collision.transform.tag == "BolaAzul")
{
Destroy(collision.transform.gameObject);
Destroy(gameObject);
}
}
}
Script que randomiza a flecha
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tiro : MonoBehaviour
{
public GameObject [] Flexas;
public Transform Arma;
int randomInt;
void Start()
{
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
randomInt = Random.Range(0, Flexas.Length);
Instantiate(Flexas[randomInt], Arma.position, Arma.rotation);
}
}
}
VagDaBru- Iniciante
- PONTOS : 2195
REPUTAÇÃO : 0
Respeito as regras :
Re: Problema em Saber Qual Objeto vai ser Spawnado
Você colocou a mesma Tag de cor pra flecha e pra bola? Se sim, basta fazer o seguinte:
- Código:
void OnCollisionEnter(Collision collision){
if(collision.gameObject.tag == this.gameObject.tag)
// A parte da destruição
}
Re: Problema em Saber Qual Objeto vai ser Spawnado
Basta criar outro script em que aparece a imagem da flecha e sua cor,
Ou seja, um sprite com a mesma variável random que randomiza a flecha.
Veja que a mamadeira aparece aleatoriamente quando eu clico.
Da mesma maneira, a imagem da flecha verde, por exemplo, apareceria quando a flecha verde é instanciada no seu jogo. Basta usar a mesma variável randomInt = Random.Range(0, Flexas.Length) para a imagem. Exemplo do script que fiz no outro tópico.
Ou seja, um sprite com a mesma variável random que randomiza a flecha.
Veja que a mamadeira aparece aleatoriamente quando eu clico.
Da mesma maneira, a imagem da flecha verde, por exemplo, apareceria quando a flecha verde é instanciada no seu jogo. Basta usar a mesma variável randomInt = Random.Range(0, Flexas.Length) para a imagem. Exemplo do script que fiz no outro tópico.
Rapaz, parece até simples. Mas um sistema com números aleatórios em 2D dá uma dor de cabeça enorme. Recomendo que comece com um sistema em que você tem a imagem e as alternativas.
Eu vou te dar uma referência, um tip de script que fiz.
Nele, você tem duas mamadeiras.
Você tem que responder qual mamadeira você está vendo. Cada vez que você clica com o mouse, aparece uma mamadeira aleatória.
Se você errar a mamadeira que você está vendo, aparece "Você não acertou".
Fiz apenas para a mamadeira 1.
Veja que aparece um string "a" e "b". Foi uma referência a um sistemas de alternativas como do vídeo abaixo.
Veja o script. Esse script verifica se você acertou ou não acertou. Eu configurei o botão para valer "a" e o outro "b" como pode ver no vídeo acima.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Perguntas : MonoBehaviour {
public aleatorio rand;
public Sprite[] mamadeiras2;
public int rand2;
void Numero(){
rand2 = Random.Range (0, mamadeiras2.Length);
}
void Update () {
if (Input.GetMouseButton (0)) {
Numero ();
}
}
public void Resposta(string responder){
if (responder == "a" && rand2 == 1) {
Debug.Log ("Você acertou");
} else if (responder == "b" && rand2 == 1) {
Debug.Log ("Você não acertou");
}
}
}
Esse agora faz as imagens das mamadeiras aparecerem aleatoriamente com o clique.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class aleatorio : MonoBehaviour
{
public int rand;
public Sprite[] mamadeiras;
void Start ()
{
Mudar ();
}
void Update () {
if (Input.GetMouseButton (0)) {
Mudar ();
}
}
public void Mudar(){
rand = Random.Range (0, mamadeiras.Length);
GetComponent<SpriteRenderer> ().sprite = mamadeiras [rand];
}
}
CShar- MembroAvançado
- PONTOS : 1648
REPUTAÇÃO : 11
Idade : 26
Respeito as regras :
Tópicos semelhantes
» Como saber em qual objeto um objeto esta filiado?
» [Duvida] Como saber de qual children do objeto estou pegando os dados
» [DUVIDA] Como saber em qual cena estou?
» Qual e o codigo de Botões na unity para saber seus estados?
» Tem como saber o Tamanho do Objeto?
» [Duvida] Como saber de qual children do objeto estou pegando os dados
» [DUVIDA] Como saber em qual cena estou?
» Qual e o codigo de Botões na unity para saber seus estados?
» Tem como saber o Tamanho do Objeto?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos