【发布时间】:2018-09-27 14:05:38
【问题描述】:
我正在尝试从一个 AssetBundle 加载 Prefab,并从另一个加载相应的 AnimationClips。 至此从 AssetBundle 加载 Prefab 和 Instantiate 都是成功的。
AssetBundle assetBundle = AssetBundle.LoadFromFile(path);
if (assetBundle == null) {
return;
}
GameObject prefab = assetBundle.LoadAsset<GameObject>(name);
Instantiate(prefab, targetTransform.position, targetTransform.rotation);
assetBundle.Unload(false);
加载AnimationClips(Legacy动画)并将其添加到上面实例化的Gameobject中也是成功的。
AssetBundle assetBundle = AssetBundle.LoadFromFile(path);
if (assetBundle == null) {
return;
}
List<AnimationClip> animationClips = new List<AnimationClip>();
foreach (string name in names) {
AnimationClip animationClip = assetBundle.LoadAsset<AnimationClip>(name);
if (animationClip != null) {
animationClips.Add(animationClip);
}
}
assetBundle.Unload(false);
当我尝试播放动画时,它不起作用,但我没有收到任何错误。
Animation animation = prefab.GetComponent<Animation>();
foreach (AnimationClip animationClip in animationClips) {
string clipName = animationClip.name;
animation.AddClip(animationClip, clipName);
}
foreach (AnimationClip animationClip in animationClips) {
string clipName = animationClip.name;
animation.PlayQueued(clipName, QueueMode.CompleteOthers);
}
我是否遗漏了什么或应该如何做?
【问题讨论】:
-
预制什么的?附有动画组件的网格?
-
@Programmer 是 Gameobject 网格和动画组件已附加。
标签: c# unity3d assetbundle