Example #1
0
        internal void InitializeFingerColliders(float fingerRadius, float fingerLength)
        {
            m_fingerColliders = new List <DynamicBoneCollider>();
            foreach (var bone in BoneNames.FingerColliders)
            {
                var fingerTransform = Tools.GetTransformOfChaControl(m_collisionCharacter, bone);
                if (fingerTransform == null)
                {
                    continue;
                }

                var fingerCollider = Tools.InitializeCollider(fingerTransform, fingerRadius * (fingerTransform.lossyScale.y + fingerTransform.lossyScale.z) / 2, fingerLength * fingerTransform.lossyScale.x, Vector3.zero);

                m_fingerColliders.Add(fingerCollider);
            }
        }
Example #2
0
        internal static List <DynamicBoneCollider> GetCharacterAnaItemColliders(ChaControl character, string animation)
        {
            var itemList = new List <DynamicBoneCollider>();

            if (character == null || anaItemColliderInfo == null)
            {
                return(itemList);
            }

            foreach (var boneInfo in anaItemColliderInfo)
            {
                if (!boneInfo.animationNames.Contains(animation))
                {
                    continue;
                }

                foreach (var boneName in boneInfo.itemBones)
                {
                    var bones = character.GetComponentsInChildren <Transform>().Where(bone => bone.name.Equals(boneName));
                    if (bones == null || bones.Count() == 0)
                    {
                        break;
                    }

                    foreach (var bone in bones)
                    {
                        float radiusScale = Tools.ComputeRadiusScale(bone, boneInfo.direction);
                        float heightScale = Tools.ComputeHeightScale(bone, boneInfo.direction);

                        var collider = Tools.InitializeCollider(bone, boneInfo.colliderRadius * radiusScale, boneInfo.colliderHeight * heightScale, Vector3.zero, boneInfo.direction);
                        itemList.Add(collider);
                    }
                }
            }

            return(itemList);
        }