void ExportDynamicBoneCollider() { //gizmo以外はエクスポート for (int j = 0; j < ColliderTergetName.Count; j++) { GameObject colliderObject = GameObject.Find(ColliderTergetName[j]); DynamicBoneCollider[] colliders = colliderObject.GetComponents <DynamicBoneCollider>(); DynamicBoneColliderSetting exportData = ScriptableObject.CreateInstance <DynamicBoneColliderSetting>(); exportData.TargetName = m_Utility.GetHierarchyPath(colliderObject.transform); exportData.Colliders = new DynamicBoneColliderSetting.SphereCollider[colliders.Length]; for (int i = 0; i < colliders.Length; i++) { exportData.Colliders[i] = new DynamicBoneColliderSetting.SphereCollider(); exportData.Colliders[i].m_Direction = colliders[i].m_Direction; exportData.Colliders[i].m_Center = colliders[i].m_Center; exportData.Colliders[i].m_Bound = colliders[i].m_Bound; exportData.Colliders[i].m_Radius = colliders[i].m_Radius; exportData.Colliders[i].m_Height = colliders[i].m_Height; } AssetDatabase.CreateAsset( exportData, "Assets/Models/Resources/DynamicBoneData/Collider/DynamicBoneColliderData_" + j + ".asset"); } }
void OnWizardUpdate() { if (BoneSettingName == null) { BoneSettingName = new string[boneObjects.Length]; for (int i = 0; i < boneObjects.Length; i++) { DynamicBoneSetting setting = (DynamicBoneSetting)boneObjects[i]; if (setting.m_Root != null) { BoneSettingName[i] = setting.m_Root.ToString(); } } } if (ColliderSettingName == null) { ColliderSettingName = new string[colliderObjects.Length]; for (int i = 0; i < colliderObjects.Length; i++) { DynamicBoneColliderSetting setting = (DynamicBoneColliderSetting)colliderObjects[i]; ColliderSettingName[i] = setting.TargetName; } } }
void ApplyVRMSpringBoneCollider() { //gizmo以外は設定を反映する for (int j = 0; j < colliderObjects.Length; j++) { DynamicBoneColliderSetting settingData = (DynamicBoneColliderSetting)colliderObjects[j]; GameObject targetObject = GameObject.Find(settingData.TargetName); VRMSpringBoneColliderGroup collider = targetObject.AddComponent <VRMSpringBoneColliderGroup>(); collider.Colliders = new VRMSpringBoneColliderGroup.SphereCollider[settingData.Colliders.Length]; for (int i = 0; i < settingData.Colliders.Length; i++) { collider.Colliders[i] = new VRMSpringBoneColliderGroup.SphereCollider(); collider.Colliders[i].Radius = settingData.Colliders[i].m_Radius; collider.Colliders[i].Offset = settingData.Colliders[i].m_Center; } } }
void ApplyDynamicBoneCollider() { //gizmo以外は設定を反映する for (int j = 0; j < colliderObjects.Length; j++) { DynamicBoneColliderSetting settingData = (DynamicBoneColliderSetting)colliderObjects[j]; GameObject targetObject = GameObject.Find(m_Utility.ChangeRootPath(settingData.TargetName, targetModel.name)); for (int i = 0; i < settingData.Colliders.Length; i++) { DynamicBoneCollider collider = targetObject.AddComponent <DynamicBoneCollider>(); collider.m_Center = settingData.Colliders[i].m_Center; collider.m_Radius = settingData.Colliders[i].m_Radius; collider.m_Direction = settingData.Colliders[i].m_Direction; collider.m_Bound = settingData.Colliders[i].m_Bound; collider.m_Height = settingData.Colliders[i].m_Height; } } }