コード例 #1
0
    private void SetupPhysicsBonesRecursive(MetaballCellObject obj, bool bRoot = false)
    {
        Rigidbody rigidbody = (Rigidbody)((Component)obj).GetComponent <Rigidbody>();

        if (Object.op_Equality((Object)rigidbody, (Object)null))
        {
            rigidbody = (Rigidbody)((Component)obj).get_gameObject().AddComponent <Rigidbody>();
        }
        rigidbody.set_useGravity(false);
        if (bRoot)
        {
            FixedJoint fixedJoint = (FixedJoint)((Component)obj).GetComponent <FixedJoint>();
            if (Object.op_Equality((Object)fixedJoint, (Object)null))
            {
                fixedJoint = (FixedJoint)((Component)obj).get_gameObject().AddComponent <FixedJoint>();
            }
            ((Joint)fixedJoint).set_connectedBody((Rigidbody)((Component)this.seed).GetComponent <Rigidbody>());
        }
        else
        {
            HingeJoint hingeJoint1 = (HingeJoint)((Component)obj).GetComponent <HingeJoint>();
            if (Object.op_Equality((Object)hingeJoint1, (Object)null))
            {
                hingeJoint1 = (HingeJoint)((Component)obj).get_gameObject().AddComponent <HingeJoint>();
            }
            ((Joint)hingeJoint1).set_connectedBody((Rigidbody)((Component)((Component)obj).get_transform().get_parent()).GetComponent <Rigidbody>());
            hingeJoint1.set_useLimits(true);
            HingeJoint  hingeJoint2  = hingeJoint1;
            JointLimits jointLimits1 = (JointLimits)null;
            ((JointLimits) ref jointLimits1).set_max(30f);
            ((JointLimits) ref jointLimits1).set_min(-30f);
            JointLimits jointLimits2 = jointLimits1;
            hingeJoint2.set_limits(jointLimits2);
        }
        for (int index = 0; index < ((Component)obj).get_transform().get_childCount(); ++index)
        {
            MetaballCellObject component = (MetaballCellObject)((Component)((Component)obj).get_transform().GetChild(index)).GetComponent <MetaballCellObject>();
            if (Object.op_Inequality((Object)component, (Object)null))
            {
                this.SetupPhysicsBonesRecursive(component, false);
            }
        }
    }