日志2025.2.15
1.增加了远程敌人的武器
//找出对应的远程武器
private GameObject FindRangeWeaponModel()
{
EnemyWeaponModel_Range[] weaponModels = GetComponentsInChildren<EnemyWeaponModel_Range>(true);
EnemyWeaponType_Range weaponType = GetComponent<Enemy_Range>().weaponType;
foreach (EnemyWeaponModel_Range weaponModel in weaponModels)
{
if(weaponModel.weaponType == weaponType)
{
SetUpLeftHandIK(weaponModel.leftHandTarget);
SwitchAnimationLayer((int)weaponModel.holdType);
return weaponModel.gameObject;
}
}
return null;
}
2.设置了远程敌人不同武器对应的动画层
//选择当前该播放的武器动画层(手枪,霰弹枪,狙击枪)
private void SwitchAnimationLayer(int layerIndex)
{
Animator animator = GetComponentInChildren<Animator>();
//将所有武器动画层的权重设置为0
for (int i = 0; i < animator.layerCount; i++)
{
animator.SetLayerWeight(i, 0);
}
animator.SetLayerWeight(layerIndex, 1);
}
3.设置了远程敌人的武器跟随瞄准和左手IK
public void EnableIK(bool enable)
{
rig.weight = enable ? 1 : 0;
}
private void SetUpLeftHandIK(Transform leftHandTarget)
{
leftHandIK.localPosition = leftHandTarget.localPosition;
leftHandIK.localRotation = leftHandTarget.localRotation;
}