簡體   English   中英

獲取一個子對象以在Unity中復制父對象的動畫

[英]Get a child object to copy the animation of the parent in Unity

我正在嘗試對具有多個子組件(衣服)的對象(身體)進行動畫處理,這些子組件旨在使用與父對象相同的動畫控制器與父對象一起進行動畫處理,但是我們正在使用的代碼框架旨在僅處理一個動畫控制器,而且過於復雜,無法在我們希望完成的時間范圍內滿足我們的需求。 結果是軀干奔跑,但衣服保持靜止。

我嘗試使用的快速而骯臟的解決方案是使用腳本讀取父級的動畫狀態,並告訴子級對象復制該狀態,但是我不確定該如何處理。 有人知道我該怎么做嗎? 我已經考慮過使用附加到父對象的腳本或附加到每個子對象的腳本,但是我不確定哪種方法正確。

我正在做類似的事情,我有一個父對象,它是游戲中的角色,它的衣服,頭發等都有很多子對象。每個對象的動畫控制器具有相同的命名參數。

我將此腳本附加到“父”對象(字符)上。 然后,我不調用父級上的GetComponent<Animator>().SetInteger(...) ,而是調用GetComponent<AgentAnimator>().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.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM