public override void OnNewPoses() { targetPose = VivePose.GetPoseEx(viveRole.roleType, viveRole.roleValue) * new Pose(posOffset, Quaternion.Euler(rotOffset)); ModifyPose(ref targetPose, origin); // transform to world space var o = origin != null ? origin : transform.parent; if (o != null) { targetPose = new Pose(o) * targetPose; targetPose.pos.Scale(o.localScale); } var poseValid = VivePose.IsValidEx(viveRole.roleType, viveRole.roleValue); if (!isPoseValid && poseValid) { transform.position = targetPose.pos; transform.rotation = targetPose.rot; } SetIsValid(poseValid); }
protected virtual void Start() { SetIsValid(VivePose.IsValidEx(viveRole.roleType, viveRole.roleValue), true); }