123456789101112131415161718192021222324252627282930 |
- using UnityEngine.Playables;
- namespace UnityEngine.Timeline
- {
- static class WeightUtility
- {
- // Given a mixer, normalizes the mixer if required
- // returns the output weight that should be applied to the mixer as input
- public static float NormalizeMixer(Playable mixer)
- {
- if (!mixer.IsValid())
- return 0;
- int count = mixer.GetInputCount();
- float weight = 0.0f;
- for (int c = 0; c < count; c++)
- {
- weight += mixer.GetInputWeight(c);
- }
- if (weight > Mathf.Epsilon && weight < 1)
- {
- for (int c = 0; c < count; c++)
- {
- mixer.SetInputWeight(c, mixer.GetInputWeight(c) / weight);
- }
- }
- return Mathf.Clamp01(weight);
- }
- }
- }
|