Unity播放完动画摧毁物体怎么写代码
时间: 2024-12-19 07:26:34 浏览: 6
在Unity中,当你想要播放动画并完成之后销毁特定的游戏物体,你可以创建一个C#脚本,结合`Animator`和`Destroy`函数来实现。以下是一个简单的示例:
```csharp
using UnityEngine;
public class DestroyAfterAnimation : MonoBehaviour
{
// 创建一个公共引用到游戏对象的Animator组件
public Animator animator;
private void Start()
{
// 当动画开始播放时注册回调函数
animator.OnAnimatorMove += OnAnimatorMove;
}
private void OnAnimatorMove(Animator animator)
{
// 检查动画是否已完成
if (animator.IsInTransition(0) || animator.GetCurrentAnimatorStateInfo(0).IsName("YourAnimationEndState")) // 请替换 "YourAnimationEndState" 为你动画结束的状态名称
{
// 动画结束后,移除回调并销毁物体
animator.OnAnimatorMove -= OnAnimatorMove;
Destroy(gameObject);
}
}
}
```
在这个脚本中,你需要将`Animator`字段设置到你想控制的物体上,并确保动画有一个名为"YourAnimationEndState"的结束状态。当该状态被触发时,脚本会从`OnAnimatorMove`回调中移除自身,并通过`Destroy`函数销毁当前的游戏物体。
阅读全文