肉饼谢谢回答 我因为目前就是大拇指跟其他的手指的处理逻辑不同 所以开始使用if-else 然后因为是根据手的关节数组,所以我现在使用的是下标来判断
for (int i = 1; i < 21; i++)
{
if (holisticLandmarkListAnnotation._currentRightHandLandmarkList[i] == null)
continue;
fingerParts.Add(new Vector2(holisticLandmarkListAnnotation._currentRightHandLandmarkList[i].X,
holisticLandmarkListAnnotation._currentRightHandLandmarkList[i].Y));
if (i == 4)
{
CheckFingerState(true, fingerParts,ref rightThumbState,i);
fingerParts.Clear();
}
if (i == 8)
{
CheckFingerState(true, fingerParts,ref rightIndexFingerState,i);
fingerParts.Clear();
}
if (i == 12)
{
CheckFingerState(true, fingerParts, ref rightMiddleFingerState,i);
fingerParts.Clear();
}
if (i == 16)
{
CheckFingerState(true, fingerParts, ref rightForthFingerState,i);
fingerParts.Clear();
}
if (i == 20)
{
CheckFingerState(true, fingerParts, ref rightlittleFingeState,i);
fingerParts.Clear();
}
}
这是新添加了一个参数的函数
/// <summary>
/// 检测手指状态
/// </summary>
/// <param name="isRightHand">是否是右手</param>
/// <param name="fingerParts">手指的关节点</param>
/// <param name="fingerState">手指的状态</param>
/// <param name="index">下标 由于大拇指的检测跟其他手指不一样</param>
public void CheckFingerState(bool isRightHand, List<Vector2> fingerParts,ref FingerState fingerState,int index)
{
if (isRightHand)
{
if(index == 4)
{