[RESOLVIDO] Preciso de ajuda para fazer um objeto pegar fogo!
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1 • Compartilhe •
[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 : 651
REPUTAÇÃO : 0
Idade : 15
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 : 2225
REPUTAÇÃO : 435
Idade : 14
Áreas de atuação : Error 404 Not Found.
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 : 651
REPUTAÇÃO : 0
Idade : 15
Respeito as regras :

» Preciso de ajuda para por a lista de membros da forma decrescente por mensagem
» [Resolvido] Não teria colocar um aviso no portal para fazer registro?
» Ajuda para impedir que o banner ou logo redimensione, preciso travá-lo de acordo com o tamanho do fórum
» [Resolvido] Como colocar categoria para rank específico.
» [Resolvido] Como mandar mp para todos do meu fórum?
» [Resolvido] Não teria colocar um aviso no portal para fazer registro?
» Ajuda para impedir que o banner ou logo redimensione, preciso travá-lo de acordo com o tamanho do fórum
» [Resolvido] Como colocar categoria para rank específico.
» [Resolvido] Como mandar mp para todos do meu fórum?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum