|
|
|
@ -5,14 +5,21 @@ public class AliasModelAnimator : MonoBehaviour |
|
|
|
{ |
|
|
|
public AliasModel aliasModel; |
|
|
|
|
|
|
|
//private int frameNumber = 0;
|
|
|
|
[SerializeField] |
|
|
|
private bool lerpMove = true; |
|
|
|
|
|
|
|
[SerializeField] |
|
|
|
[Range(1, 20)] |
|
|
|
private float animateFps = 5f; |
|
|
|
|
|
|
|
private float frameNumber = 0; |
|
|
|
|
|
|
|
IEnumerator Start() |
|
|
|
{ |
|
|
|
var meshRenderer = GetComponent<SkinnedMeshRenderer>(); |
|
|
|
if (!meshRenderer) |
|
|
|
if (!meshRenderer || meshRenderer.sharedMesh == null || meshRenderer.sharedMesh.blendShapeCount == 0) |
|
|
|
{ |
|
|
|
Debug.LogWarning($"Unexpected AliasModelAnimator on non-animated object '{name}'"); |
|
|
|
Destroy(this); |
|
|
|
yield break; |
|
|
|
} |
|
|
|
@ -25,11 +32,16 @@ public class AliasModelAnimator : MonoBehaviour |
|
|
|
meshRenderer.sharedMesh = mesh; |
|
|
|
meshRenderer.SetBlendShapeWeight(0, blendWeight); |
|
|
|
|
|
|
|
//yield return new WaitForSeconds(0.1f); // Animate at 10 fps
|
|
|
|
if (lerpMove) |
|
|
|
{ |
|
|
|
yield return null; |
|
|
|
|
|
|
|
//frameNumber = (frameNumber + 1) % numFrames;
|
|
|
|
frameNumber = (frameNumber + Time.deltaTime * 5) % numFrames; |
|
|
|
frameNumber = (frameNumber + Time.deltaTime * animateFps) % numFrames; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
yield return new WaitForSeconds(1.0f / animateFps); |
|
|
|
frameNumber = (frameNumber + 1) % numFrames; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |