Anima2D.BoneUtils.GetBoneRadius C# (CSharp) Method

GetBoneRadius() public static method

public static GetBoneRadius ( Anima2D.Bone2D bone ) : float
bone Anima2D.Bone2D
return float
		public static float GetBoneRadius(Bone2D bone)
		{
			return Mathf.Min(bone.localLength / 20f, 0.125f * HandleUtility.GetHandleSize(bone.transform.position));
		}

Usage Example

Beispiel #1
0
        static Bone2D GetClosestBone(Vector2 mousePosition, float minDistance)
        {
            Bone2D closestBone    = null;
            float  minSqrDistance = float.MaxValue;

            List <Bone2D> l_bones = unlockedVisibleBones;

            for (int i = 0; i < l_bones.Count; i++)
            {
                Bone2D bone = l_bones[i];

                if (bone)
                {
                    float   radius         = BoneUtils.GetBoneRadius(bone);
                    Vector3 direction      = (bone.endPosition - bone.transform.position).normalized;
                    Vector2 screenPosition = HandleUtility.WorldToGUIPoint(bone.transform.position);
                    Vector3 endPoint       = bone.endPosition - direction * radius;

                    if (bone.child)
                    {
                        endPoint -= direction * BoneUtils.GetBoneRadius(bone.child);
                    }

                    Vector2 screenEndPosition = HandleUtility.WorldToGUIPoint(endPoint);

                    float sqrDistance = MathUtils.SegmentSqrtDistance(mousePosition, screenPosition, screenEndPosition);

                    if (sqrDistance < minSqrDistance && sqrDistance < minDistance * minDistance)
                    {
                        minSqrDistance = sqrDistance;
                        closestBone    = bone;
                    }
                }
            }

            return(closestBone);
        }
All Usage Examples Of Anima2D.BoneUtils::GetBoneRadius