[TUTORIAL] Script para controle de System Particle
Página 1 de 1
[TUTORIAL] Script para controle de System Particle
fiz esse script para criar rajadas de energia e ter mais controle durante o jogo, voce pode aumentar o lifetime, size,etc
- Código:
using UnityEngine;
using System.Collections;
public class controleDeParticleSystem : MonoBehaviour {
public float Tempo,PararEmission;
[Range(0f,500f)] public float StarLifeTimeMaximo,StartLifeTimeInicial;
[Range(0f,1000f)] public float StartSizeMaximo,StartSizeInicial;
[Range(0f,50f)] public float StarSpeedMaximo;
[Range(0f,10f)] public float StartSpeedInicial;
[Range(0f,20f)]public float VALifeTime;
[Range(1f,20f)] public float VASize;
[Range(1f,50f)] public float VASpeed;
[Range(0.01f,1f)] float DeslocamentoMaximo,VDeslocamento;
[Range(0.01f,5f)]public float TempoCollisor;
float Cronometro,DeslocamentoAtual,StartSizeAtual,StarSpeedAtual,StarLifeTimeAtual,StartSize,ASize,Cr2;
float CronometroC;
bool Disparar,DispararCollisor;
public GameObject Collisor;
public Vector3 Distancia;
public bool CriarCollisor;
// Use this for initialization
void Start () {
StarSpeedAtual = StartSpeedInicial;
StarLifeTimeAtual = StartLifeTimeInicial;
ASize = StartSizeInicial;
}
void Update () {
DeslocamentoAtual = VDeslocamento*Time.deltaTime;
if (DeslocamentoAtual >= DeslocamentoMaximo) {
DeslocamentoAtual = DeslocamentoMaximo; }
StartSizeAtual = StartSize *ASize;
if (StartSizeAtual >= StartSizeMaximo) {StartSizeAtual = StartSizeMaximo;}
if (Cr2 > 1f) {
ASize = (Mathf.Pow (ASize, VASize));
Cr2 = 0;
}
StartSize = GetComponent<ParticleSystem> ().startSize;
Cronometro += 1f * Time.deltaTime;
if(Cronometro>=Tempo ){Disparar=true;}
if (Disparar== true) {
if (Cr2 > 1f) {
StarLifeTimeAtual = (Mathf.Pow (StarLifeTimeAtual , VALifeTime));
Debug.Log (StarSpeedAtual);
Cr2 = 0;
}
StarLifeTimeAtual += VALifeTime* 1f * Time.deltaTime;
Cr2 += 1f * Time.deltaTime;
if (Cr2 > 1f) {
StarSpeedAtual = (Mathf.Pow (StarSpeedAtual, VASpeed));
Debug.Log (StarSpeedAtual);
Cr2 = 0;
}
if (StarLifeTimeAtual >= StarLifeTimeMaximo) {
StarLifeTimeAtual = StarLifeTimeMaximo;
}
if (StarSpeedAtual >= StarSpeedMaximo) {
StarSpeedAtual = StarSpeedMaximo;
}
GetComponent<ParticleSystem> ().startSpeed = StarSpeedAtual;
GetComponent<ParticleSystem> ().startLifetime = StarLifeTimeAtual;
GetComponent<ParticleSystem> ().startSize = StartSizeAtual;
if (DeslocamentoAtual<=DeslocamentoMaximo) {
transform.localPosition = new Vector3 (transform.localPosition.x, transform.localPosition.y, transform.localPosition.z + DeslocamentoAtual);
}
if (CriarCollisor == true) {
CronometroC += 1f * Time.deltaTime;
if (CronometroC >= TempoCollisor) {
DispararCollisor = true;
CronometroC = 0;
}
if (DispararCollisor == true) {
Instantiate (Collisor, transform.localPosition, transform.localRotation);
DispararCollisor = false;
}
}
}
}
}
Tópicos semelhantes
» particle system
» Problema com Particle System
» ajuda com o particle system????
» [TUTORIAL ] Script para Cutscenes
» [TUTORIAL] Script para usar em Portas
» Problema com Particle System
» ajuda com o particle system????
» [TUTORIAL ] Script para Cutscenes
» [TUTORIAL] Script para usar em Portas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos