Пример #1
0
        public static Rigidbody Create(this Link.Inertial inertial, GameObject gameObject)
        {
            Rigidbody rigidbody = gameObject.AddComponent <Rigidbody>();

            if (inertial.origin != null)
            {
                rigidbody.centerOfMass = inertial.origin.GetPosition();
            }

            // todo: apply inertail rotation for inertia
            rigidbody.mass = (float)inertial.mass;
            inertial.inertia.SetInertia(rigidbody);
            return(rigidbody);
        }
Пример #2
0
        public static Rigidbody Create(this Link.Inertial inertial, GameObject gameObject)
        {
            Rigidbody rigidbody = gameObject.AddComponent <Rigidbody>();

            rigidbody.mass = (float)inertial.mass;

            if (inertial.origin != null)
            {
                rigidbody.centerOfMass = inertial.origin.GetPosition();
            }

            inertial.inertia.SetInertia(rigidbody);

            RigidbodyUrdfDataManager rigidbodyUrdfDataManager
                = gameObject.AddComponent <RigidbodyUrdfDataManager>();

            rigidbodyUrdfDataManager.GetValuesFromUrdf(
                rigidbody.centerOfMass,
                rigidbody.inertiaTensor,
                rigidbody.inertiaTensorRotation);
            rigidbodyUrdfDataManager.UseUrdfData = true;

            return(rigidbody);
        }