C# 获取子对象以在Unity中复制父对象的动画

C# 获取子对象以在Unity中复制父对象的动画,c#,unity3d,animation,parent-child,C#,Unity3d,Animation,Parent Child,我正在尝试为一个对象设置动画,一个具有多个子组件的身体,设计用于使用与父对象相同的动画控制器与父对象一起设置动画,但我们使用的代码框架设计为仅处理一个动画控制器,太复杂,无法在我们希望完成的时间范围内根据我们的需要进行返工。结果是躯干运行,但衣服保持静止 我尝试使用的快速而肮脏的解决方案是使用脚本读取父对象的动画状态,并告诉子对象复制该状态,但我不确定如何执行此操作。有人知道我该怎么做吗?我考虑过使用附加到父对象的脚本或附加到每个子对象的脚本,但我不确定正确的方法是什么。我正在做类似的事情,我有

我正在尝试为一个对象设置动画,一个具有多个子组件的身体,设计用于使用与父对象相同的动画控制器与父对象一起设置动画,但我们使用的代码框架设计为仅处理一个动画控制器,太复杂,无法在我们希望完成的时间范围内根据我们的需要进行返工。结果是躯干运行,但衣服保持静止


我尝试使用的快速而肮脏的解决方案是使用脚本读取父对象的动画状态,并告诉子对象复制该状态,但我不确定如何执行此操作。有人知道我该怎么做吗?我考虑过使用附加到父对象的脚本或附加到每个子对象的脚本,但我不确定正确的方法是什么。

我正在做类似的事情,我有一个父对象,它是我游戏中的一个角色,它有一堆子对象用于衣服、头发、,等。每个对象的动画控制器具有相同的命名参数

我将此脚本附加到角色的父对象。然后不调用GetComponent.SetInteger。。。在父级上,我调用GetComponent.SetInteger…,它负责设置父级及其直接子级上的参数。如果父对象具有子对象或更深层的子对象,则必须更新此脚本以进一步读取子对象树,或者使用可以将AgentAnimator附加到子对象,并使用相同的方案处理任何级别的子对象

public class AgentAnimator : MonoBehaviour
{
    public void SetInteger(string id, int value)
    {
        Animator animator = GetComponent<Animator>();
        animator.SetInteger(id, value);
        var childComponents = GetComponentsInChildren<Animator>();
        foreach (var child in childComponents)
        {
           child.SetInteger(id, value);
        }
    }

    // Do the same for SetBool, SetTrigger, etc.
}