我正在使用 Kinect 工具箱,所以我手上有一个列表ReplaySkeletonFrames
。我正在遍历这个列表,获取第一个跟踪的骨架并修改一些属性。
众所周知,当我们改变一个对象时,我们也改变了原来的对象。
我需要复制一个骨架。
注意:我不能使用CopySkeletonDataTo()
,因为我的框架是 aReplaySkeletonFrame
而不是ReplayFrame
“正常”Kinect 的框架。
我尝试制作自己的方法来逐个复制属性,但是无法复制某些属性。看...
public static Skeleton Clone(this Skeleton actualSkeleton)
{
if (actualSkeleton != null)
{
Skeleton newOne = new Skeleton();
// doesn't work - The property or indexer 'Microsoft.Kinect.SkeletonJoints'
// cannot be used in this context because the set accessor is inaccessible
newOne.Joints = actualSkeleton.Joints;
// doesn't work - The property or indexer 'Microsoft.Kinect.SkeletonJoints'
// cannot be used in this context because the set accessor is inaccessible
JointCollection jc = new JointCollection();
jc = actualSkeleton.Joints;
newOne.Joints = jc;
//...
}
return newOne;
}
如何解决?