unity多个子物体位置随机替换
时间: 2023-05-15 15:07:56 浏览: 109
您可以使用以下代码来实现Unity中多个子物体位置的随机替换:
```csharp
using System.Collections.Generic;
using UnityEngine;
public class RandomizeChildPositions : MonoBehaviour
{
public float range = 1f;
public bool includeInactive = false;
private List<Transform> childTransforms = new List<Transform>();
private void Start()
{
foreach (Transform child in transform)
{
if (child.gameObject.activeInHierarchy || includeInactive)
{
childTransforms.Add(child);
}
}
RandomizePositions();
}
public void RandomizePositions()
{
foreach (Transform child in childTransforms)
{
Vector3 randomOffset = new Vector3(Random.Range(-range, range), Random.Range(-range, range), Random.Range(-range, range));
child.localPosition += randomOffset;
}
}
}
```
这个脚本会将物体的所有子物体的位置随机偏移一定范围内的值。您可以将这个脚本挂载到您想要随机替换子物体位置的物体上,并在需要时调用RandomizePositions()函数即可。
请注意,这个脚本只会随机替换子物体的位置,不会改变它们的旋转或缩放。如果您需要随机替换这些属性,您需要修改代码来实现。
阅读全文