unity角色在一段时间后随机激活一个动作
时间: 2024-03-21 11:39:11 浏览: 51
以下是一个基本的随机激活动作的脚本示例:
```csharp
using UnityEngine;
public class RandomAction : MonoBehaviour
{
public float minDelay = 1f; // 最小延迟时间
public float maxDelay = 3f; // 最大延迟时间
public Animator animator; // 动画控制器
public string[] actionNames; // 动作名称数组
private bool isPlaying = false; // 是否正在播放动作
private void Start()
{
if (animator == null)
{
animator = GetComponent<Animator>();
}
}
private void Update()
{
if (!isPlaying)
{
// 等待一段随机的时间
float delay = Random.Range(minDelay, maxDelay);
Invoke("PlayRandomAction", delay);
isPlaying = true;
}
}
private void PlayRandomAction()
{
// 随机选择一个动作名称
int index = Random.Range(0, actionNames.Length);
string actionName = actionNames[index];
// 激活随机选择的动作
animator.SetTrigger(actionName);
isPlaying = false;
}
}
```
这个脚本中,我们在Start()方法中初始化了动画控制器,并在Update()方法中等待一段随机的时间后调用PlayRandomAction()方法激活随机选择的动作。在PlayRandomAction()方法中,我们随机选择一个动作名称,并使用动画控制器的SetTrigger()方法激活这个动作。
你只需要将这个脚本挂载到需要随机播放动作的游戏对象上,并将需要播放的动作名称添加到actionNames数组中即可。注意,这个脚本需要动画控制器中有相应的动作触发器才能正常工作。
阅读全文