需要一个Unity内控制物体随机移动的脚本 需要的功能是 幅度 频率 轴向 持续时间 可以曲线控制随机范围
时间: 2024-02-24 14:55:16 浏览: 105
好的,以下是一个基本的Unity脚本,可以控制物体在指定轴向上进行随机移动,并且可以控制幅度、频率、持续时间和随机范围。
```
using UnityEngine;
public class RandomMovement : MonoBehaviour
{
public float amplitude = 1f; // 随机幅度
public float frequency = 1f; // 随机频率
public float duration = 1f; // 随机持续时间
public Vector3 axis = Vector3.up; // 随机轴向
private float timer = 0f; // 计时器
private Vector3 startPos; // 初始位置
void Start()
{
startPos = transform.position; // 记录初始位置
}
void Update()
{
timer += Time.deltaTime;
if (timer < duration) // 在持续时间内进行随机移动
{
float rand = Random.Range(-1f, 1f); // 生成随机数
Vector3 offset = axis.normalized * rand * amplitude; // 计算位移
transform.position = startPos + offset; // 进行位移
transform.Rotate(axis, rand * frequency); // 进行旋转
}
}
void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(startPos, amplitude); // 在初始位置绘制一个黄色的球体
}
}
```
其中,amplitude控制随机幅度,frequency控制随机频率,duration控制随机持续时间,axis控制随机轴向。
你可以在Unity编辑器中使用曲线调节器来控制这些参数的值,从而实现对随机范围的曲线控制。
阅读全文