Example #1
0
	// Use this for initialization
	void Awake() {
		_transform = transform;
		if(!emitter) emitter = gameObject.GetComponent<Puffy_Emitter>();
		particlesList = new List<int>();
		particlesPositions = new List<Vector3>();
		particlesSizes = new List<float>();
	}
Example #2
0
 // Use this for initialization
 void Awake()
 {
     _transform = transform;
     if (!emitter)
     {
         emitter = gameObject.GetComponent <Puffy_Emitter>();
     }
     particlesList      = new List <int>();
     particlesPositions = new List <Vector3>();
     particlesSizes     = new List <float>();
 }
 // Use this for initialization
 void Awake()
 {
     _transform = transform;
     if (!emitter)
     {
         emitter = gameObject.GetComponent <Puffy_Emitter>();
     }
     if (emitter)
     {
         emitter.multiSpawner = this;
     }
 }
    void Start()
    {
        Puffy_Emitter emitter = GetComponent <Puffy_Emitter>();

        if (!emitter)
        {
            enabled = false;
        }
        else
        {
            emitter.colorGradient = this;
        }
    }
	void Awake() {
		_transform = transform;
		if(emitter == null) emitter = gameObject.GetComponent<Puffy_Emitter>();
		if(emitter != null) emitter.shapeSpawner = this;
		
		vertices = new Vector3[1];
		normals = new Vector3[1];
		colors = new Color[1];
		lastSpawnPosition = new Vector3[1];
		lastSpawnDirection = new Vector3[1];
		
		vertices[0] = Vector3.zero;
		normals[0]=Vector3.zero;
		colors[0]=Color.white;
		lastSpawnPosition[0] = Vector3.zero;
		lastSpawnDirection[0] = Vector3.zero;
	}
Example #6
0
    void Awake()
    {
        _transform = transform;
        if (emitter == null)
        {
            emitter = gameObject.GetComponent <Puffy_Emitter>();
        }
        if (emitter != null)
        {
            emitter.shapeSpawner = this;
        }

        vertices           = new Vector3[1];
        normals            = new Vector3[1];
        colors             = new Color[1];
        lastSpawnPosition  = new Vector3[1];
        lastSpawnDirection = new Vector3[1];

        vertices[0]           = Vector3.zero;
        normals[0]            = Vector3.zero;
        colors[0]             = Color.white;
        lastSpawnPosition[0]  = Vector3.zero;
        lastSpawnDirection[0] = Vector3.zero;
    }
Example #7
0
    public override void OnInspectorGUI()
    {
        Puffy_Emitter myTarget = (Puffy_Emitter)target;

        //myTarget.useThread = EditorGUILayout.Toggle("Use threads",myTarget.useThread);

        myTarget.autoAssign = EditorGUILayout.Toggle("Auto Assign to renderer", myTarget.autoAssign);
        if (myTarget.autoAssign)
        {
            //Puffy_Renderer[] renderers = FindObjectsOfType(typeof(Puffy_Renderer)) as Puffy_Renderer[];

            myTarget.autoRendererName = EditorGUILayout.TextField("Auto assign to", myTarget.autoRendererName);
        }

        myTarget.freezed = EditorGUILayout.Toggle("Freezed", myTarget.freezed);

        EditorGUILayout.Separator();

        myTarget.autoEmit = EditorGUILayout.Toggle("Auto emit", myTarget.autoEmit);
        if (myTarget.autoEmit)
        {
            myTarget.spawnRate = EditorGUILayout.Slider("Particles/second", myTarget.spawnRate, 1, 5000);
        }

        myTarget.subParticlesCount = (int)EditorGUILayout.Slider("Sub particles", myTarget.subParticlesCount, 0, 500);
        if (myTarget.subParticlesCount > 0)
        {
            myTarget.subParticlesRatio = EditorGUILayout.Slider("Sub lifetime factor", myTarget.subParticlesRatio, 0.0f, 1f);
            myTarget.debugIntermediate = EditorGUILayout.Toggle("Debug sub particles", myTarget.debugIntermediate);
        }
        EditorGUILayout.Separator();

        myTarget.maxParticlesDistance = EditorGUILayout.Slider("Max gap (0=OFF)", myTarget.maxParticlesDistance, 0.0f, 10f);

        EditorGUILayout.Separator();

        myTarget.chunkSize  = (int)EditorGUILayout.Slider("Particles chunk size", myTarget.chunkSize, 64, 4096);
        myTarget.autoResize = EditorGUILayout.Toggle("Unlimited particles", myTarget.autoResize);

        EditorGUILayout.Separator();

        myTarget.positionVariation = EditorGUILayout.Vector3Field("Position Variation", myTarget.positionVariation);

        EditorGUILayout.Separator();

        myTarget.startDirection          = EditorGUILayout.Vector3Field("Direction", myTarget.startDirection);
        myTarget.startDirectionVariation = EditorGUILayout.Vector3Field("Direction Variation", myTarget.startDirectionVariation);

        EditorGUILayout.Separator();

        myTarget.lifeTime          = Mathf.Max(0, EditorGUILayout.FloatField("Life time", myTarget.lifeTime));
        myTarget.lifeTimeVariation = Mathf.Min(myTarget.lifeTime, Mathf.Max(0, EditorGUILayout.FloatField("Life time variation (-/+)", myTarget.lifeTimeVariation)));

        myTarget.startSpeed          = Mathf.Max(0, EditorGUILayout.FloatField("Start speed", myTarget.startSpeed));
        myTarget.startSpeedVariation = Mathf.Min(myTarget.startSpeed, Mathf.Max(0, EditorGUILayout.FloatField("Start speed variation (-/+)", myTarget.startSpeedVariation)));


        EditorGUILayout.Separator();

        myTarget.startSize          = Mathf.Max(0, EditorGUILayout.FloatField("Start size", myTarget.startSize));
        myTarget.startSizeVariation = Mathf.Min(myTarget.startSize, Mathf.Max(0, EditorGUILayout.FloatField("Start size variation (-/+)", myTarget.startSizeVariation)));

        myTarget.endSize          = Mathf.Max(0, EditorGUILayout.FloatField("End size", myTarget.endSize));
        myTarget.endSizeVariation = Mathf.Min(myTarget.endSize, Mathf.Max(0, EditorGUILayout.FloatField("End size variation (-/+)", myTarget.endSizeVariation)));

        EditorGUILayout.Separator();

        myTarget.colorMode = (Puffy_Emitter.colorModes)EditorGUILayout.EnumPopup("Color source", myTarget.colorMode);

        switch (myTarget.colorMode)
        {
        case Puffy_Emitter.colorModes.Basic:
            myTarget.startColor          = EditorGUILayout.ColorField("Start color", myTarget.startColor);
            myTarget.startColorVariation = EditorGUILayout.ColorField("Start color variation (-/+)", myTarget.startColorVariation);

            myTarget.endColor          = EditorGUILayout.ColorField("End color", myTarget.endColor);
            myTarget.endColorVariation = EditorGUILayout.ColorField("End color variation (-/+)", myTarget.endColorVariation);

            if (myTarget.colorGradient != null)
            {
                myTarget.colorGradient.enabled = false;
            }
            break;

        case Puffy_Emitter.colorModes.Gradient:
            if (myTarget.gameObject.GetComponent <Puffy_Gradient>() == null)
            {
                myTarget.colorGradient = (myTarget.gameObject.AddComponent <Puffy_Gradient>() as Puffy_Gradient);
            }
            if (myTarget.colorGradient != null)
            {
                myTarget.colorGradient.enabled = true;
            }

            myTarget.colorGradientEndTime = EditorGUILayout.Slider("Gradient life time", myTarget.colorGradientEndTime, 0.001f, myTarget.lifeTime + myTarget.lifeTimeVariation);

            break;

        case Puffy_Emitter.colorModes.Mesh:
            if (myTarget.colorGradient != null)
            {
                myTarget.colorGradient.enabled = false;
            }
            break;
        }

        myTarget.useLuminosity = EditorGUILayout.Toggle("Use Luminosity", myTarget.useLuminosity);

        if (myTarget.useLuminosity)
        {
            if (myTarget.colorMode != Puffy_Emitter.colorModes.Gradient)
            {
                myTarget.colorGradientEndTime = EditorGUILayout.Slider("Luminosity life time", myTarget.colorGradientEndTime, 0.001f, myTarget.lifeTime + myTarget.lifeTimeVariation);
            }
            myTarget.luminosityCurve = EditorGUILayout.CurveField("Luminosity", myTarget.luminosityCurve);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }
	// Use this for initialization
	void Awake() {
		_transform = transform;
		if(!emitter) emitter = gameObject.GetComponent<Puffy_Emitter>();
		if(emitter) emitter.multiSpawner = this;
	}