SkinnedMeshRenderer skinnedMesh;
Animator animator;
SkinnedMeshRenderer protoTypeSkinnedMesh;
Animator protoTypeAnimator;
Transform bones;
GameObject bonesObject;
Transform rootBone;
animator = obj.GetComponent();
skinnedMesh = obj.GetComponent();
protoTypeSkinnedMesh = skinMeshList[id];
skinnedMesh.sharedMesh = protoTypeSkinnedMesh.sharedMesh;
skinnedMesh.sharedMaterial = protoTypeSkinnedMesh.sharedMaterial;
protoTypeAnimator = animators[id];
animator.runtimeAnimatorController = protoTypeAnimator.runtimeAnimatorController;
animator.avatar = protoTypeAnimator.avatar;
Destroy(obj.transform.GetChild(0).gameObject); //hips, for bones
bonesObject = Instantiate(bonesObjs[id]);
bones = bonesObject.transform.GetComponentsInChildren();
bonesObject.transform.SetParent(obj.transform);
rootBone = bonesObject.GetComponent();
skinnedMesh.bones = bones;
skinnedMesh.rootBone = rootBone;
after run this code, the object’s Animator Component show warnings Transform ‘Head’ has been deleted Transform ‘Hand_L’ has been deleted Transform ‘Head_R’ has been deleted …
but these are the bones before they change. i do ‘skinnedMesh.bones = bones;’ And during runtime, if I change something in the Animator component in the inspector window, warning goes away and it works as I intended.
i was try animator.Rebind() but it is still…
unity version is 2020.3.38f1