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); } }
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); }