Clonar partícula na cena.
2 participantes
Página 1 de 1
Clonar partícula na cena.
Bom dia, eu quero que quando uma bala colidir com uma parede ou obj ela seja destruída e ative uma partícula de explosão, só que quando ela é destruída, a partícula vai junto, então preciso criar uma prefab separada da partícula e depois clonar ela na cena, só que eu não sei como eu clono ela, se alguém poder me ajudar, dês de já agradeço.
vittortgames- Iniciante
- PONTOS : 1592
REPUTAÇÃO : 1
Respeito as regras :
Re: Clonar partícula na cena.
Voce ja fez o sistema de atirar a bala?
Bom, o sistema de quando colidir instanciar uma particula, voce primeiro transforma ela em prefab, porém voce tem que tranformar ela em um prefab com o seguinte script, dei o nome de DestroyImpact:
Pronto agora, o sistema de instanciar a particula, acredito que voce irá colocar a sua arma, eu dei o nome do script de Gun:
Como pode ver eu coloquei um impact reserva pois quando voce instanciava a particula, ela iria destruir e automaticamente a variavel iria mudar para impact(clone), e quando destruisse ela iria se tornal null, causando erros e nao instanciando mais a sua particula, entao a particula reserva vai preservar a variavel e ela nunca se mudará para seu clone, sempre instanciando.
Bom, o sistema de quando colidir instanciar uma particula, voce primeiro transforma ela em prefab, porém voce tem que tranformar ela em um prefab com o seguinte script, dei o nome de DestroyImpact:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyImpact : MonoBehaviour
{
float delay;
public ParticleSystem explosao; //coloque sua particula de impacto aqui
float countdown;
void Start()
{
delay = explosao.duration;
countdown = delay;
}
void Update()
{
countdown -= Time.deltaTime;
if(countdown <= 0)
{
Destroy(gameObject);
}
}
}
Pronto agora, o sistema de instanciar a particula, acredito que voce irá colocar a sua arma, eu dei o nome do script de Gun:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gun : MonoBehaviour
{
public float range; //coloque até que distacia a bala pode acertar
public Camera cam; //coloque sua Main Camera aqui
public GameObject impact; //coloca sua particula prefab aqui
private GameObject impactReserva;
void Start()
{
impactReserva = impact;
}
void Update()
{
if(Input.GetMouseButtonDown(0))
{
Shoot();
}
}
void Shoot()
{
RaycastHit hit;
if(Physics.Raycast(cam.transform.position, cam.transform.forward,out hit, range))
{
impact = Instantiate(impact, hit.point, Quaternion.LookRotation(hit.normal));
if(impact != null)
{
impact = impactReserva;
}
}
}
}
Como pode ver eu coloquei um impact reserva pois quando voce instanciava a particula, ela iria destruir e automaticamente a variavel iria mudar para impact(clone), e quando destruisse ela iria se tornal null, causando erros e nao instanciando mais a sua particula, entao a particula reserva vai preservar a variavel e ela nunca se mudará para seu clone, sempre instanciando.
Pokedlg- ProgramadorMaster
- PONTOS : 2337
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
vittortgames- Iniciante
- PONTOS : 1592
REPUTAÇÃO : 1
Respeito as regras :
Pokedlg- ProgramadorMaster
- PONTOS : 2337
REPUTAÇÃO : 198
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras :
Tópicos semelhantes
» [DÚVIDA] Como clonar um component
» [Duvida]Como Clonar Um GameObject
» Loja no inicio da cena, sem que apareça novamente nos restarts da cena
» Obter, Clonar, modificar e colocar na tela uma imagem
» Particula 2d
» [Duvida]Como Clonar Um GameObject
» Loja no inicio da cena, sem que apareça novamente nos restarts da cena
» Obter, Clonar, modificar e colocar na tela uma imagem
» Particula 2d
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos