public static UrdfJoint Create(GameObject linkObject) { UrdfJointContinuous urdfJoint = linkObject.AddComponent <UrdfJointContinuous>(); #if UNITY_2020_1_OR_NEWER urdfJoint.unityJoint = linkObject.GetComponent <ArticulationBody>(); urdfJoint.unityJoint.jointType = ArticulationJointType.RevoluteJoint; #else urdfJoint.unityJoint = linkObject.AddComponent <HingeJoint>(); urdfJoint.unityJoint.autoConfigureConnectedAnchor = true; #endif return(urdfJoint); }
private static UrdfJoint AddCorrectJointType(GameObject linkObject, JointTypes jointType) { UrdfJoint urdfJoint = null; switch (jointType) { case JointTypes.Fixed: urdfJoint = UrdfJointFixed.Create(linkObject); break; case JointTypes.Continuous: urdfJoint = UrdfJointContinuous.Create(linkObject); break; case JointTypes.Revolute: urdfJoint = UrdfJointRevolute.Create(linkObject); break; case JointTypes.Floating: urdfJoint = UrdfJointFloating.Create(linkObject); break; case JointTypes.Prismatic: urdfJoint = UrdfJointPrismatic.Create(linkObject); break; case JointTypes.Planar: urdfJoint = UrdfJointPlanar.Create(linkObject); break; } #if UNITY_2020_1_OR_NEWER #else UnityEngine.Joint unityJoint = linkObject.GetComponent <UnityEngine.Joint>(); unityJoint.connectedBody = linkObject.transform.parent.gameObject.GetComponent <Rigidbody>(); unityJoint.autoConfigureConnectedAnchor = true; #endif return(urdfJoint); }