Beispiel #1
0
 protected override void AdditionalSettings()
 {
     base.AdditionalSettings();
     _updateMode     = (DynamicBone.UpdateMode)EditorGUILayout.EnumPopup("UpdateMode", _updateMode);
     _distantDisable = EditorGUILayout.Toggle("DistantDisable", _distantDisable);
 }
Beispiel #2
0
        public void getSettings(DynamicBone db, Animator an)
        {
            placement.setTransform(db.transform, an);

            m_Root.setTransform(db.m_Root, an);

            m_UpdateRate = db.m_UpdateRate;

            m_UpdateMode = db.m_UpdateMode;

            m_Damping        = db.m_Damping;
            m_DampingDistrib = db.m_DampingDistrib;

            m_Elasticity        = db.m_Elasticity;
            m_ElasticityDistrib = db.m_ElasticityDistrib;

            m_Stiffness        = db.m_Stiffness;
            m_StiffnessDistrib = db.m_StiffnessDistrib;

            m_Inert        = db.m_Inert;
            m_InertDistrib = db.m_InertDistrib;

            var type = db.GetType();

            if (type.GetMethod("m_Friction") != null)
            {
                m_Friction = db.m_Friction;
            }
            if (type.GetMethod("m_FrictionDistrib") != null)
            {
                m_FrictionDistrib = db.m_FrictionDistrib;
            }


            m_Radius        = db.m_Radius;
            m_RadiusDistrib = db.m_RadiusDistrib;

            m_EndLength = db.m_EndLength;

            m_EndOffset = db.m_EndOffset;

            m_Gravity = db.m_Gravity;

            m_Force = db.m_Force;

            m_Colliders.Clear();

            foreach (var collider in db.m_Colliders)
            {
                if (collider == null)
                {
                    continue;
                }
                var boneSettingsCollider = new KhodrinsDynamicBoneSettingsCollider();

                if (collider.GetType().Name == "DynamicBonePlaneCollider")
                {
                    boneSettingsCollider.getCollider((DynamicBoneCollider)collider, an);
                }
                else
                {
                    boneSettingsCollider.getCollider((DynamicBoneCollider)collider, an);
                }

                if (boneSettingsCollider.bone.getTransform(an) != null)
                {
                    m_Colliders.Add(boneSettingsCollider);
                }
            }

            m_Exclusions.Clear();

            foreach (var exclusion in db.m_Exclusions)
            {
                if (exclusion == null)
                {
                    continue;
                }

                var excl = new KhodrinsDynamicBoneSettingsTransform(exclusion, an);

                if (excl.getTransform(an) != null)
                {
                    m_Exclusions.Add(excl);
                }
            }

            m_FreezeAxis = db.m_FreezeAxis;

            m_DistantDisable   = db.m_DistantDisable;
            m_ReferenceObject  = new KhodrinsDynamicBoneSettingsTransform(db.m_ReferenceObject, an);
            m_DistanceToObject = db.m_DistanceToObject;
        }