40 lines
943 B
C#
40 lines
943 B
C#
using UnityEngine;
|
|
using System;
|
|
|
|
namespace Obi
|
|
{
|
|
|
|
[AddComponentMenu("Physics/Obi/Obi Foam Emitter", 1000)]
|
|
[ExecuteInEditMode]
|
|
[RequireComponent(typeof(ObiActor))]
|
|
[DisallowMultipleComponent]
|
|
public class ObiFoamEmitter : ObiFoamGenerator
|
|
{
|
|
public enum ShapeType
|
|
{
|
|
Cylinder = 0,
|
|
Box = 1
|
|
}
|
|
|
|
[Header("Emission shape")]
|
|
public ShapeType shape;
|
|
public Transform shapeTransform;
|
|
public Vector3 shapeSize = Vector3.one;
|
|
|
|
private float emissionAccumulator = 0;
|
|
|
|
public int GetParticleNumberToEmit(float deltaTime)
|
|
{
|
|
emissionAccumulator += foamGenerationRate * deltaTime;
|
|
int particles = (int)emissionAccumulator;
|
|
emissionAccumulator -= particles;
|
|
return particles;
|
|
}
|
|
|
|
public void Reset()
|
|
{
|
|
emissionAccumulator = 0;
|
|
}
|
|
}
|
|
}
|