public JsonAnimator(Animator animator_, ResourceMapper resMap) { animator = animator_; if (!animator_) { throw new System.ArgumentNullException("animator_"); } name = animator.name; skeletonId = resMap.skelRegistry.registerSkeleton(animator.transform, true); //var skel = resMap.getSkeletonById(skeletonId); var skelTransform = resMap.skelRegistry.getSkeletonTransformById(skeletonId); //var root = PrefabUtility.FindPrefabRoot(skelTransform.gameObject); //var meshKey = new MeshStorageKey( var skinRends = animator.GetComponentsInChildren <SkinnedMeshRenderer>(); skinMeshIds = skinRends.Select((arg) => resMap.getOrRegMeshId(arg, skelTransform)).ToList(); var runtimeAnimator = animator.runtimeAnimatorController; var editorAnimator = runtimeAnimator as UnityEditor.Animations.AnimatorController; animatorControllerId = resMap.getAnimatorControllerId(editorAnimator, animator); humanBones = gatherHumanBones(animator); }