You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
880 B
30 lines
880 B
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); |
|
} |
|
} |
|
}
|
|
|