Como emitir partícula em void static
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Como emitir partícula em void static
Como faço pra emitir uma partícula nesse void, sendo que ele está estático ?
obs: quero que quando meu objeto fique true, junto com ele venha um efeito de partícula. Mas acontece, que eu chamo ele de outro script.
Flws
obs: quero que quando meu objeto fique true, junto com ele venha um efeito de partícula. Mas acontece, que eu chamo ele de outro script.
Flws
- Código:
public static void Ativa(){
int index = Random.Range(0,IstaticFocos.Length);
IstaticFocos[index].SetActive(true);
}
Última edição por Hardencio em Qui Dez 22, 2016 3:03 pm, editado 1 vez(es)
Hardencio- Avançado
- PONTOS : 3720
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Como emitir partícula em void static
Cara, não aconselho usar void's estáticas... apenas públicas. Tenha em mente que a void estática será compartilhada com todos os objetos que contem este script, e a void pública irá pertencer apenas ao objeto que contem o script.
você pode acessar esta void por outro script usando o comando GetComponent.
Quanto a parte da emissão de partícula, já é mais complexo, mas nada extremamente grave... você já tem a partícula? ou quer criá-la via script?
você pode acessar esta void por outro script usando o comando GetComponent.
Quanto a parte da emissão de partícula, já é mais complexo, mas nada extremamente grave... você já tem a partícula? ou quer criá-la via script?
Re: Como emitir partícula em void static
Na verdade eu to tentando fazendo um sistema que quando eu desativo um objeto ele ative outro random que estão numa lista...isso eu já consigo com esses scripts que estão abaixo. Eu só não consigo fazer com que emita partículas que fumaça quando ele ativa...
Eu já tenho a partícula é só chamar. Mas não sei como faço, pra quando ela fica true chama a partícula. Eu tentei colocar num IEnumerator e esperar 1 segundo. Mas acontece que eu desativo o objeto ai não funciona. (e tenho que desativar esse objeto, mesmo que não seja o certo).
Nesse script eu tenho a lista dos objetos que quero que desativar e ativar.
Já nesse eu faço o sistema de quando desativar um da quela lista, ele ativa outro da mesma lista mas aleatoriamente.
Alguém sabe resolver? Eu não estou conseguindo pensa, como resolver isso :/
Eu já tenho a partícula é só chamar. Mas não sei como faço, pra quando ela fica true chama a partícula. Eu tentei colocar num IEnumerator e esperar 1 segundo. Mas acontece que eu desativo o objeto ai não funciona. (e tenho que desativar esse objeto, mesmo que não seja o certo).
Nesse script eu tenho a lista dos objetos que quero que desativar e ativar.
- Código:
using UnityEngine;
using System.Collections;
public class AtivaDesativa : MonoBehaviour {
public float maxTime = 5f;
[SerializeField]
public GameObject[] FocosDaDengue;
public static GameObject[] IstaticFocos;
// Use this for initialization
void Start () {
//Passo uma lista normal valer a static para poder acessar do outro script
IstaticFocos = FocosDaDengue;
}
// Update is called once per frame
void Update () {
}
}
Já nesse eu faço o sistema de quando desativar um da quela lista, ele ativa outro da mesma lista mas aleatoriamente.
- Código:
using UnityEngine;
using System.Collections;
public class Focos : MonoBehaviour {
//Colide e desativa as coisas.
void OnTriggerEnter (Collider col){
if (col.tag == "Player") {
//Dasativa ele, por isso não consigo chamar o Segundos();
gameObject.SetActive(false);
//Emite particula
Particle_Energia.Instance.Explosion (transform.position);
//Emite o som
SoundEffectScript.Instance.MakeAPonto ();
//Add um ponto
HiScore.pontos++;
//Almenta tamanho da fonte
HiScore.AlterarTamanho ();
//Chama a void
Ativa ();
}
}
void Ativa(){
//Faz ativar um aleatório
int index = Random.Range(1,AtivaDesativa.IstaticFocos.Length);
AtivaDesativa.IstaticFocos[index].SetActive(true);
//Emite particula
Particle_Smoke.Instance.Explosion(transform.position);
}
// IEnumerator Segundos(){
// yield return new WaitForSeconds (1);
// int index = Random.Range(0,AtivaDesativa.IstaticFocos.Length);
// AtivaDesativa.IstaticFocos[index].SetActive(true);
// Particle_Smoke.Instance.Explosion(transform.position);
// }
}
Alguém sabe resolver? Eu não estou conseguindo pensa, como resolver isso :/
Hardencio- Avançado
- PONTOS : 3720
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: Como emitir partícula em void static
Já resolvi com um Invoke! :D
Hardencio- Avançado
- PONTOS : 3720
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Tópicos semelhantes
» Como executar outros blocos fora do bloco static void Main()
» como saber a posição que a particula bateu?
» [Duvida] Como acessar uma variavel nãa estatica(static).
» como acessar a colisao de particula?
» Colisao de particula? como usar?
» como saber a posição que a particula bateu?
» [Duvida] Como acessar uma variavel nãa estatica(static).
» como acessar a colisao de particula?
» Colisao de particula? como usar?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos