public void DROP(object[] args)
{
GameObject agent = GameObject.FindGameObjectWithTag ("Agent");
if (agent != null) {
Animator anim = agent.GetComponentInChildren<Animator> ();
GameObject leftGrasper = anim.GetBoneTransform (HumanBodyBones.LeftHand).transform.gameObject;
GameObject rightGrasper = anim.GetBoneTransform (HumanBodyBones.RightHand).transform.gameObject;
GameObject grasper = null;
Transform leftGrasperCoord = agent.GetComponent<GraspScript>().leftGrasperCoord;
Transform rightGrasperCoord = agent.GetComponent<GraspScript>().rightGrasperCoord;
GraspScript graspController = agent.GetComponent<GraspScript> ();
if (args [args.Length - 1] is bool) {
if ((bool)args [args.Length - 1] == true) {
foreach (object arg in args) {
if (arg is GameObject) {
Voxeme voxComponent = (arg as GameObject).GetComponent<Voxeme> ();
if (voxComponent != null) {
if (voxComponent.isGrasped) {
//voxComponent.transform.position = voxComponent.transform.position +
// (voxComponent.grasperCoord.position - voxComponent.gameObject.transform.position);
if (voxComponent.grasperCoord == leftGrasperCoord) {
grasper = leftGrasper;
}
else if (voxComponent.grasperCoord == rightGrasperCoord) {
grasper = rightGrasper;
}
RiggingHelper.UnRig ((arg as GameObject), grasper);
(arg as GameObject).GetComponent<Rigging> ().ActivatePhysics (true);
graspController.grasper = (int)Gestures.HandPose.Neutral;
//agent.GetComponent<GraspScript>().isGrasping = false;
//agent.GetComponent<IKControl> ().leftHandObj.position = graspController.leftDefaultPosition;
//agent.GetComponent<IKControl> ().rightHandObj.position = graspController.rightDefaultPosition;
voxComponent.isGrasped = false;
voxComponent.graspTracker = null;
voxComponent.grasperCoord = null;
}
}
}
}
}
}
}
}