public void ToPhysics(TensegrityParameters param) { if (m_ConfigurableJoint != null) { return; } var fromBar = startPoint.AttatchedBar; var toBar = endPoint.AttatchedBar; m_ConfigurableJoint = fromBar.gameObject.AddComponent <ConfigurableJoint>(); m_ConfigurableJoint.connectedBody = toBar.body; m_ConfigurableJoint.autoConfigureConnectedAnchor = false; m_ConfigurableJoint.enableCollision = true; m_ConfigurableJoint.anchor = startPoint.transform.localPosition; m_ConfigurableJoint.connectedAnchor = endPoint.transform.localPosition; m_ConfigurableJoint.xMotion = ConfigurableJointMotion.Limited; m_ConfigurableJoint.yMotion = ConfigurableJointMotion.Limited; m_ConfigurableJoint.zMotion = ConfigurableJointMotion.Limited; m_ConfigurableJoint.angularXMotion = ConfigurableJointMotion.Free; m_ConfigurableJoint.angularYMotion = ConfigurableJointMotion.Free; m_ConfigurableJoint.angularZMotion = ConfigurableJointMotion.Free; limit = m_ConfigurableJoint.linearLimit; spring = m_ConfigurableJoint.linearLimitSpring; defualtLimitLength = defaultGeometryLength * param.PreTenseParameter; limit.limit = defualtLimitLength; spring.spring = param.spring; spring.damper = param.damper; m_ConfigurableJoint.linearLimit = limit; m_ConfigurableJoint.linearLimitSpring = spring; }
public void ToPhysics(TensegrityParameters param) { if (!GetComponent <Rigidbody>()) { body = gameObject.AddComponent <Rigidbody>(); body.isKinematic = true; } }