Upload from upload_mods.ps1
This commit is contained in:
62
KFAttached/FPSPack/FPSParticleSystemScaler.cs
Normal file
62
KFAttached/FPSPack/FPSParticleSystemScaler.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using UnityEngine;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
[ExecuteInEditMode]
|
||||
public class FPSParticleSystemScaler : MonoBehaviour
|
||||
{
|
||||
public float particlesScale = 1.0f;
|
||||
|
||||
float oldScale;
|
||||
|
||||
void Start()
|
||||
{
|
||||
oldScale = particlesScale;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
if (Mathf.Abs(oldScale - particlesScale) > 0.0001f && particlesScale > 0)
|
||||
{
|
||||
transform.localScale = new Vector3(particlesScale, particlesScale, particlesScale);
|
||||
float scale = particlesScale / oldScale;
|
||||
var ps = this.GetComponentsInChildren<ParticleSystem>();
|
||||
|
||||
foreach (ParticleSystem particles in ps)
|
||||
{
|
||||
particles.startSize *= scale;
|
||||
particles.startSpeed *= scale;
|
||||
particles.gravityModifier *= scale;
|
||||
|
||||
SerializedObject serializedObject = new SerializedObject(particles);
|
||||
serializedObject.FindProperty("ClampVelocityModule.magnitude.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ClampVelocityModule.x.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ClampVelocityModule.y.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ClampVelocityModule.z.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("VelocityModule.x.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("VelocityModule.y.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("VelocityModule.z.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ColorBySpeedModule.range").vector2Value *= scale;
|
||||
serializedObject.FindProperty("RotationBySpeedModule.range").vector2Value *= scale;
|
||||
serializedObject.FindProperty("ForceModule.x.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ForceModule.y.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("ForceModule.z.scalar").floatValue *= scale;
|
||||
serializedObject.FindProperty("SizeBySpeedModule.range").vector2Value *= scale;
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
var trails = this.GetComponentsInChildren<TrailRenderer>();
|
||||
foreach (TrailRenderer trail in trails)
|
||||
{
|
||||
trail.startWidth *= scale;
|
||||
trail.endWidth *= scale;
|
||||
}
|
||||
oldScale = particlesScale;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user