我是 Unity 的新手,所以請耐心等待...在 Blender 中創建了一個模型,并帶有 metarig 和影片。
用空閑影片制作了一個簡單的影片師:

我們有一個玩家生成器 (DinoSpawnLocation) 和一個腳本 (DinoSpawner) 來生成玩家 (DinoPlayer),并且影片師作為組件添加:

這是 DinoSpawner 腳本,它應該實體化一個預制件,并將影片師添加為組件:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DinoSpawner : MonoBehaviour
{
public GameObject DinoSpawn;
// Start is called before the first frame update
void Start()
{
Spawn();
}
void Spawn()
{
Quaternion YPosition = Quaternion.Euler(0, -60, 0);
transform.rotation = YPosition;
GameObject clone = Instantiate(DinoSpawn, transform.position, transform.rotation);
Animator animator = DinoSpawn.GetComponent<Animator>();
animator.runtimeAnimatorController = Resources.Load("Assets/Animations/Dino Controller 1.controller") as RuntimeAnimatorController;
}
}
這就是問題所在,生成了一個克隆,并添加了 animator 組件,但它沒有鏈接 animator 控制器(以黃色突出顯示):

我在 Resource.Load() 方法中仔細檢查了路徑,但由于某種原因它不會自動添加它,并且我在控制臺中沒有收到任何錯誤。
我覺得這應該是一個簡單的解決方法,但已經在這個問題上停留了太久,如果有人可以提供幫助,將不勝感激:)
uj5u.com熱心網友回復:
聽起來像是animator.runtimeAnimatorController = Resources.Load("Assets/Animations/Dino Controller 1.controller") as RuntimeAnimatorController;回報null。
這是有道理的,因為Resources.Load應該用于放置在名為的檔案夾中的資產Resources,然后也期望相對于該Resources檔案夾的路徑..所以我非常懷疑您是否已將資產放置在例如檔案夾中
Assets/Resources/Assets/Animations/...
無論如何,一般不要使用資源!
只需在預制件中正確分配控制器資產并洗掉Instantiate.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408558.html
標籤:
下一篇:如何在另一個結束后啟動功能
