Tanoda
LegacyToHumanoidAnimationClipMapper.cs
Go to the documentation of this file.
1using TriLibCore.Utils;
2using UnityEngine;
3
4namespace TriLibCore.Mappers
5{
7 [CreateAssetMenu(menuName = "TriLib/Mappers/Animation Clip/Legacy To Humanoid Animation Clip Mapper", fileName = "LegacyToHumanoidAnimationClipMapper")]
8
9 public class LegacyToHumanoidAnimationClipMapper : AnimationClipMapper
10 {
16 public AnimationClip MecanimAnimationClipTemplate;
17
19 public override AnimationClip[] MapArray(AssetLoaderContext assetLoaderContext, AnimationClip[] sourceAnimationClips)
20 {
21 var animator = assetLoaderContext.RootGameObject.GetComponent<Animator>();
22 if (animator != null && animator.avatar != null && animator.avatar.isHuman)
23 {
24 animator.enabled = false;
26 {
27 if (assetLoaderContext.Options.ShowLoadingWarnings)
28 {
29 Debug.LogWarning("No MecanimAnimationClipTemplate specified when using the LegacyToHumanoidAnimationClipMapper.");
30 }
31 MecanimAnimationClipTemplate = new AnimationClip();
32 assetLoaderContext.Allocations.Add(MecanimAnimationClipTemplate);
33 }
34 for (var i = 0; i < sourceAnimationClips.Length; i++)
35 {
36 var animationClip = HumanoidRetargeter.ConvertLegacyIntoHumanoidAnimationClip(assetLoaderContext.RootGameObject, animator.avatar, sourceAnimationClips[i], MecanimAnimationClipTemplate);
37 if (animationClip != null)
38 {
39 sourceAnimationClips[i] = animationClip;
40 }
41 }
42 animator.enabled = true;
43 }
44 return sourceAnimationClips;
45 }
46 }
47}
UnityEngine.Debug Debug
Definition: TanodaServer.cs:19
Represents a Mapper that converts legacy Animation Clips into humanoid Animation Clips.
AnimationClip MecanimAnimationClipTemplate
Template mecanim animation clip. Unity runtime API can't access mecanim animation clip settings as ro...
override AnimationClip[] MapArray(AssetLoaderContext assetLoaderContext, AnimationClip[] sourceAnimationClips)