Exemplo n.º 1
0
        public IEnumerator SetAnimatorBonesProperly()
        {
            //Arrange
            SkinnedMeshRenderer skinnedMeshRenderer = CreateTestGameObject("_SMR_Holder").AddComponent <SkinnedMeshRenderer>();

            skinnedMeshRenderer.rootBone = CreateTestGameObject("_rootBone").transform;
            skinnedMeshRenderer.bones    = new Transform[5];
            for (var i = 0; i < skinnedMeshRenderer.bones.Length; i++)
            {
                skinnedMeshRenderer.bones[i] = CreateTestGameObject($"_rootBone_{i}").transform;
            }
            catalog.TryGetValue(SUNGLASSES_ID, out WearableItem wereableItem);
            WearableController wearable = new WearableController(wereableItem);

            toCleanUp.Add(wearable);
            wearable.Load(WearableLiterals.BodyShapes.FEMALE, wearableHolder, null, null);
            yield return(new WaitUntil(() => wearable.isReady));

            //Act
            wearable.SetAnimatorBones(skinnedMeshRenderer);

            //Assert
            SkinnedMeshRenderer wearableSMR = wearable.assetContainer.GetComponentInChildren <SkinnedMeshRenderer>();

            Assert.AreEqual(skinnedMeshRenderer.rootBone, wearableSMR.rootBone);
            for (int index = 0; index < wearableSMR.bones.Length; index++)
            {
                Assert.AreEqual(skinnedMeshRenderer.bones[index], wearableSMR.bones[index]);
            }
        }