从资源Unity加载动画



我是用Unity Engine编程游戏的新手。我已经搜索了"如何从统一中的资产加载动画",但还没有找到解决方案。

我负责对撞机的触发器

void OnTriggerCollisionEnter2D(Collision2D coll){
if(coll.gameObject.tag = "Player"){
//try to load animation
}
}

如果你知道的话,帮帮我!感谢

首先,我认为您将很难使我的解决方案发挥作用,因为看起来您缺乏Unity的基本内容。

OnTriggerCollisionEnter2D不是检测Trigger的有效回调函数。

OnTriggerEnter2D(Collider2D coll)就是您想要的。

其次,在onTrigger期间不要做任何事情。在Start()函数中加载动画,然后在OnTriggerEnter2D函数中播放。

此外,if(coll.gameObject.tag = "Player")应该是if(coll.gameObject.tag == "Player")。请注意双"="。您与双"="进行比较,而不是一个。但是效率不高。如果可能,请使用coll.gameObject.CompareTag而不是coll.gameObject.tag ==

将动画放入Assets/Resources/Animation文件夹

Animation animation;
AnimationClip animanClip;
string animName = "walk";
// Use this for initialization
void Start()
{
//Load Animation
loadAnimation();
}
void loadAnimation()
{
GameObject tempObj = Resources.Load("Animations/" + animName, typeof(GameObject)) as GameObject;
if (!tempObj == null)
{
Debug.LogError("Animation NOT found");
}
else
{
animation = tempObj.GetComponent<Animation>();
animanClip = animation.clip;
animation.AddClip(animanClip, animName);
}
}
public void OnTriggerEnter2D(Collider2D coll)
{
if (coll.gameObject.CompareTag("Player"))
{
animation.Play(animName);
}
}

最后,学习这些教程。

Unity脚本教程

Unity物理教程

其他Unity教程

最新更新