Files
beyond/Assets/ThirdParty/Invector-3rdPersonController/Basic Locomotion/Scripts/Ragdoll/vRagdollGenericTemplate.cs
2024-11-20 15:21:28 +01:00

97 lines
3.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Invector.vCharacterController
{
public class vRagdollGenericTemplate : ScriptableObject
{
[Header("--- Bones Names ---")]
public string root = "Hips";
public string leftHips = "LeftUpperLeg";
public string leftKnee = "LeftLowerLeg";
public string leftFoot = "LeftFoot";
public string rightHips = "RightUpperLeg";
public string rightKnee = "RightLowerLeg";
public string rightFoot = "RightFoot";
public string leftArm = "LeftUpperArm";
public string leftElbow = "LeftLowerArm";
public string rightArm = "RightUpperArm";
public string rightElbow = "RightLowerArm";
public string middleSpine = "Chest";
public string head = "Head";
public Transform GetRoot(Transform rootTransform)
{
return GetBone(root, rootTransform);
}
public Transform GetLeftHips(Transform rootTransform)
{
return GetBone(leftHips, rootTransform);
}
public Transform GetLeftKnee(Transform rootTransform)
{
return GetBone(leftKnee, rootTransform);
}
public Transform GetLeftFoot(Transform rootTransform)
{
return GetBone(leftFoot, rootTransform);
}
public Transform GetRightHips(Transform rootTransform)
{
return GetBone(rightHips, rootTransform);
}
public Transform GetRightKnee(Transform rootTransform)
{
return GetBone(rightKnee, rootTransform);
}
public Transform GetRightFoot(Transform rootTransform)
{
return GetBone(rightFoot, rootTransform);
}
public Transform GetLeftArm(Transform rootTransform)
{
return GetBone(leftArm, rootTransform);
}
public Transform GetLeftElbow(Transform rootTransform)
{
return GetBone(leftElbow, rootTransform);
}
public Transform GetRightArm(Transform rootTransform)
{
return GetBone(rightArm, rootTransform);
}
public Transform GetRightElbow(Transform rootTransform)
{
return GetBone(rightElbow, rootTransform);
}
public Transform GetMiddleSpine(Transform rootTransform)
{
return GetBone(middleSpine, rootTransform);
}
public Transform GetHead(Transform rootTransform)
{
return GetBone(head, rootTransform);
}
Transform GetBone(string boneName, Transform rootTransform)
{
var transforms = rootTransform.GetComponentsInChildren<Transform>();
for (int i = 0; i < transforms.Length; i++)
{
if (transforms[i].gameObject.name.Contains(boneName)) return transforms[i];
if (transforms[i].gameObject.name.ToUpper().Contains(boneName)) return transforms[i];
if (transforms[i].gameObject.name.ToUpper().Contains(boneName.ToUpper())) return transforms[i];
if (transforms[i].gameObject.name.ToLower().Contains(boneName.ToUpper())) return transforms[i];
if (transforms[i].gameObject.name.ToLower().Contains(boneName.ToLower())) return transforms[i];
if (transforms[i].gameObject.name.ToLower().Contains(boneName)) return transforms[i];
}
return null;
}
}
}