void ApplySpringBone()
        {
            //gizmo以外は設定を反映
            //transformはFind後したTransformを反映)
            for (int j = 0; j < boneObjects.Length; j++)
            {
                //設定データ
                SpringBoneSetting settingData = (SpringBoneSetting)boneObjects[j];

                //対象のボーン
                //m_Utility.ChangeRootPath 設定されたパスをターゲット対象に変更する
                GameObject targetObject
                    = GameObject.Find(m_Utility.ChangeRootPath(settingData.m_AttachObject, targetModel.name));

                SpringBone springbone = targetObject.AddComponent <SpringBone>();

                springbone.m_comment        = settingData.m_comment;
                springbone.m_stiffnessForce = settingData.m_stiffnessForce;
                springbone.m_gravityPower   = settingData.m_gravityPower;
                springbone.m_gravityDir     = settingData.m_gravityDir;
                springbone.m_dragForce      = settingData.m_dragForce;
                if (settingData.m_center != null)
                {
                    GameObject findObject = GameObject.Find(settingData.m_center);
                    if (findObject != null)
                    {
                        springbone.m_center = findObject.GetComponent <Transform>();
                    }
                }
                springbone.RootBones = new List <Transform>();
                for (int i = 0; i < settingData.RootBones.Length; i++)
                {
                    GameObject findObject
                        = GameObject.Find(m_Utility.ChangeRootPath(settingData.RootBones[i], targetModel.name));

                    springbone.RootBones.Add(findObject.GetComponent <Transform>());
                }
                springbone.m_hitRadius    = settingData.m_hitRadius;
                springbone.ColliderGroups = new SpringBoneColliderGroup[settingData.ColliderGroups.Length];
                for (int i = 0; i < settingData.ColliderGroups.Length; i++)
                {
                    GameObject findObject
                        = GameObject.Find(m_Utility.ChangeRootPath(settingData.ColliderGroups[i], targetModel.name));

                    springbone.ColliderGroups[i] = findObject.GetComponent <SpringBoneColliderGroup>();
                }
            }
        }
Beispiel #2
0
        void OnWizardCreate()
        {
            for (int i = 0; i < objects.Length; i++)
            {
                setting = (MaterialSetting)objects[i];

                //設定されたパスをターゲット対象に変更する
                //m_Utility.ChangeRootPath

                GameObject targetObject
                    = GameObject.Find(m_Utility.ChangeRootPath(setting.targetName, parentObject.name));

                materials = targetObject.GetComponent <SkinnedMeshRenderer>().sharedMaterials;

                for (int j = 0; j < materials.Length; j++)
                {
                    materials[j] = setting.mat[j];
                }

                targetObject.GetComponent <SkinnedMeshRenderer>().materials = materials;
            }
        }
        void ApplyDynamicBone()
        {
            //gizmo以外は設定を反映
            //transformはFind後したTransformを反映)
            for (int j = 0; j < boneObjects.Length; j++)
            {
                //設定データ
                DynamicBoneSetting settingData = (DynamicBoneSetting)boneObjects[j];

                //内部変数の定義
                GameObject findObject = null;

                //対象のボーン
                //m_Utility.ChangeRootPath 設定されたパスをターゲット対象に変更する
                GameObject targetObject
                    = GameObject.Find(m_Utility.ChangeRootPath(settingData.m_AttachObject, targetModel.name));
                DynamicBone dynamicbone = targetObject.AddComponent <DynamicBone>();

                findObject
                    = GameObject.Find(m_Utility.ChangeRootPath(settingData.m_Root, targetModel.name));
                dynamicbone.m_Root = findObject.GetComponent <Transform>();

                dynamicbone.m_UpdateRate        = settingData.m_UpdateRate;
                dynamicbone.m_UpdateMode        = settingData.m_UpdateMode;
                dynamicbone.m_Damping           = settingData.m_Damping;
                dynamicbone.m_DampingDistrib    = settingData.m_DampingDistrib;
                dynamicbone.m_Elasticity        = settingData.m_Elasticity;
                dynamicbone.m_ElasticityDistrib = settingData.m_ElasticityDistrib;
                dynamicbone.m_Stiffness         = settingData.m_Stiffness;
                dynamicbone.m_StiffnessDistrib  = settingData.m_StiffnessDistrib;
                dynamicbone.m_Inert             = settingData.m_Inert;
                dynamicbone.m_InertDistrib      = settingData.m_InertDistrib;
                dynamicbone.m_Radius            = settingData.m_Radius;
                dynamicbone.m_RadiusDistrib     = settingData.m_RadiusDistrib;
                dynamicbone.m_EndLength         = settingData.m_EndLength;
                dynamicbone.m_EndOffset         = settingData.m_EndOffset;
                dynamicbone.m_Gravity           = settingData.m_Gravity;
                dynamicbone.m_Force             = settingData.m_Force;

                dynamicbone.m_Colliders = new List <DynamicBoneColliderBase>();

                if (settingData.m_Colliders != null)
                {
                    foreach (string collider in settingData.m_Colliders)
                    {
                        findObject
                            = GameObject.Find(m_Utility.ChangeRootPath(collider, targetModel.name));
                        if (findObject != null)
                        {
                            dynamicbone.m_Colliders.Add(findObject.GetComponent <DynamicBoneCollider>());
                        }
                    }
                }

                if (settingData.m_Exclusions != null)
                {
                    dynamicbone.m_Exclusions = new List <Transform>();

                    foreach (string exclusion in settingData.m_Exclusions)
                    {
                        findObject
                            = GameObject.Find(m_Utility.ChangeRootPath(exclusion, targetModel.name));
                        if (findObject != null)
                        {
                            dynamicbone.m_Exclusions.Add(findObject.GetComponent <Transform>());
                        }
                    }
                }

                dynamicbone.m_FreezeAxis     = settingData.m_FreezeAxis;
                dynamicbone.m_DistantDisable = settingData.m_DistantDisable;

                if (settingData.m_ReferenceObject != null)
                {
                    findObject
                        = GameObject.Find(m_Utility.ChangeRootPath(settingData.m_ReferenceObject, targetModel.name));
                    if (findObject != null)
                    {
                        dynamicbone.m_ReferenceObject = findObject.GetComponent <Transform>();
                    }
                }

                dynamicbone.m_DistanceToObject = settingData.m_DistanceToObject;
            }
        }