想做一个Unity固定位置十张图片,但是每次出现的顺序不一样的功能
时间: 2024-03-20 13:41:08 浏览: 63
您可以通过以下步骤来实现这个功能:
1. 在Unity中创建一个空的GameObject,并将其命名为“ImageHolder”。
2. 在ImageHolder下创建10个空的GameObject,并将它们分别命名为“Image1”至“Image10”。
3. 将每个GameObject下添加一个Image组件,并将要显示的图片拖入到Image组件中。
4. 编写一个脚本,将它挂载到ImageHolder上,脚本如下所示:
```
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RandomImageOrder : MonoBehaviour
{
public List<GameObject> images = new List<GameObject>();
void Start()
{
Shuffle(images);
for (int i = 0; i < images.Count; i++)
{
images[i].transform.localPosition = new Vector3(i * 100, 0, 0);
}
}
void Shuffle(List<GameObject> list)
{
for (int i = 0; i < list.Count; i++)
{
GameObject temp = list[i];
int randomIndex = Random.Range(i, list.Count);
list[i] = list[randomIndex];
list[randomIndex] = temp;
}
}
}
```
5. 在脚本中定义一个List来存储Image1至Image10的GameObject,然后在Start函数中使用Shuffle函数将List中的GameObject随机排序。
6. 随机排序后,循环遍历List中的GameObject,并将它们按顺序排列在屏幕上。
这样,每次启动游戏时,Image1至Image10的顺序都会随机排列,但它们的位置仍然是固定的。
阅读全文