[RESOLVIDO] Preciso de ajuda para fazer um objeto pegar fogo!
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Preciso de ajuda para fazer um objeto pegar fogo!
Estou trabalhando em um projeto, e preciso que um objeto com uma tag especifica pegue fogo! E depois que a "vida" desde objeto chegar a 0 ele seja destruído.
Fiz um script para o objeto pegar fogo, porem só da para 1 objeto pegar fogo por vez, que não e oque eu quero.
Script que eu fiz...
Fiz um script para o objeto pegar fogo, porem só da para 1 objeto pegar fogo por vez, que não e oque eu quero.
Script que eu fiz...
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShootFlame : MonoBehaviour {
public ParticleSystem mFlame;
public bool mVisible = false;
public GameObject mPoint;
public float mMaxDistance = 16f;
public GameObject mParticle;
private Transform mObject;
// Use this for initialization
void Start () {
mFlame.Stop ();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown (0) && mVisible == false) {
mVisible = true;
mFlame.Play ();
} else if (Input.GetMouseButtonDown (0) && mVisible == true) {
mVisible = false;
mFlame.Stop ();
}
if (mVisible == true) {
RaycastHit hit;
if (Physics.Raycast (mPoint.transform.position, mPoint.transform.forward, out hit, mMaxDistance)) {
mObject = hit.transform;
if (hit.point != null) {
if (mObject.gameObject.CompareTag ("Object")) {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.red);
if (GameObject.Find ("FlamesParticleEffect(Clone)") == null) {
Instantiate (mParticle, hit.point, Quaternion.identity);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.blue);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.green);
}
}
}
}
}
Mario Santos- Iniciante
- PONTOS : 2757
REPUTAÇÃO : 0
Idade : 21
Respeito as regras :
Re: [RESOLVIDO] Preciso de ajuda para fazer um objeto pegar fogo!
Meu Deus do céu! Que Script grande :affraid: . Deixa eu te dar uma ajudinha:KlotStudios1 escreveu:Estou trabalhando em um projeto, e preciso que um objeto com uma tag especifica pegue fogo! E depois que a "vida" desde objeto chegar a 0 ele seja destruído.
Fiz um script para o objeto pegar fogo, porem só da para 1 objeto pegar fogo por vez, que não e oque eu quero.
Script que eu fiz...
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShootFlame : MonoBehaviour {
public ParticleSystem mFlame;
public bool mVisible = false;
public GameObject mPoint;
public float mMaxDistance = 16f;
public GameObject mParticle;
private Transform mObject;
// Use this for initialization
void Start () {
mFlame.Stop ();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown (0) && mVisible == false) {
mVisible = true;
mFlame.Play ();
} else if (Input.GetMouseButtonDown (0) && mVisible == true) {
mVisible = false;
mFlame.Stop ();
}
if (mVisible == true) {
RaycastHit hit;
if (Physics.Raycast (mPoint.transform.position, mPoint.transform.forward, out hit, mMaxDistance)) {
mObject = hit.transform;
if (hit.point != null) {
if (mObject.gameObject.CompareTag ("Object")) {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.red);
if (GameObject.Find ("FlamesParticleEffect(Clone)") == null) {
Instantiate (mParticle, hit.point, Quaternion.identity);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.blue);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.green);
}
}
}
}
}
- Código:
if (Input.GetMouseButtonDown(0) && Physics.Raycast(transform.position, transform.forward, out hit, 20f))
if (hit.gameObject.name == "Object"){
var x = Instantiate(mParticle, hit.point, Quaternion.identity, hit.transform);
Destroy(x, tempoDaSuaPartícula);
}
Daí você coloca o tempo máximo da sua partícula e KBOOM! Deu..
Observações: Você não precisa do Debug.Drawline toda hora, somente para debug's.
O mFlame.Stop(); É desnecessário, já que quando o seu objeto for destruído, o sistema de partículas também será.
Nos diga se deu certo (Resolveu) ou se não deu certo.
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Preciso de ajuda para fazer um objeto pegar fogo!
Deu certo sim, fiz algumas pequenas mudanças, mais no final deu certinho. ObrigadoSouris escreveu:Meu Deus do céu! Que Script grande :affraid: . Deixa eu te dar uma ajudinha:KlotStudios1 escreveu:Estou trabalhando em um projeto, e preciso que um objeto com uma tag especifica pegue fogo! E depois que a "vida" desde objeto chegar a 0 ele seja destruído.
Fiz um script para o objeto pegar fogo, porem só da para 1 objeto pegar fogo por vez, que não e oque eu quero.
Script que eu fiz...
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShootFlame : MonoBehaviour {
public ParticleSystem mFlame;
public bool mVisible = false;
public GameObject mPoint;
public float mMaxDistance = 16f;
public GameObject mParticle;
private Transform mObject;
// Use this for initialization
void Start () {
mFlame.Stop ();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown (0) && mVisible == false) {
mVisible = true;
mFlame.Play ();
} else if (Input.GetMouseButtonDown (0) && mVisible == true) {
mVisible = false;
mFlame.Stop ();
}
if (mVisible == true) {
RaycastHit hit;
if (Physics.Raycast (mPoint.transform.position, mPoint.transform.forward, out hit, mMaxDistance)) {
mObject = hit.transform;
if (hit.point != null) {
if (mObject.gameObject.CompareTag ("Object")) {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.red);
if (GameObject.Find ("FlamesParticleEffect(Clone)") == null) {
Instantiate (mParticle, hit.point, Quaternion.identity);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.blue);
}
} else {
Debug.DrawLine (mPoint.transform.position, hit.point, Color.green);
}
}
}
}
}
- Código:
if (Input.GetMouseButtonDown(0) && Physics.Raycast(transform.position, transform.forward, out hit, 20f))
if (hit.gameObject.name == "Object"){
var x = Instantiate(mParticle, hit.point, Quaternion.identity, hit.transform);
Destroy(x, tempoDaSuaPartícula);
}
Daí você coloca o tempo máximo da sua partícula e KBOOM! Deu..
Observações: Você não precisa do Debug.Drawline toda hora, somente para debug's.
O mFlame.Stop(); É desnecessário, já que quando o seu objeto for destruído, o sistema de partículas também será.
Nos diga se deu certo (Resolveu) ou se não deu certo.
Mario Santos- Iniciante
- PONTOS : 2757
REPUTAÇÃO : 0
Idade : 21
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Preciso de ajuda com joystic para personagem 2D
» [RESOLVIDO] Ajuda com o IEnumerator... SERIAO MSM, Preciso de ajuda.
» [RESOLVIDO] como que faz para fazer o objeto sumir ao encostar
» [RESOLVIDO] Como fazer para colocar um objeto Parente do outro?
» Preciso de uma pessoa que possa fazer animações para meu jogo de FPS e uma pessoa para que sabe fazer modelagem
» [RESOLVIDO] Ajuda com o IEnumerator... SERIAO MSM, Preciso de ajuda.
» [RESOLVIDO] como que faz para fazer o objeto sumir ao encostar
» [RESOLVIDO] Como fazer para colocar um objeto Parente do outro?
» Preciso de uma pessoa que possa fazer animações para meu jogo de FPS e uma pessoa para que sabe fazer modelagem
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos