c# - 如何将随机数组与主题相关的数组连接起来?
问题描述
我正在制作一个小应用程序来随机选择迪士尼世界的一个公园供我去,一旦我在那个公园,我就想按下按钮 - “我应该骑什么?” 让它告诉我在它为我挑选的公园的那部分进行什么骑行。
就像它说的
“去动物王国”然后当我按下“我应该骑什么?”
我想让它说“探险珠穆朗玛峰”。但它随机选择一个公园,所以我不确定如何链接另一个随机但匹配的数组,因为公园和骑行在公园的同一部分。
代码示例:
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadStartScene()
{
SceneManager.LoadScene(0);
}
public void OnPressPap()
{
SceneManager.LoadScene(1);
}
public void OnPressRides()
{
SceneManager.LoadScene(2);
}
上面是我按下按钮后的简单场景加载器。
{
public string[] ParkNameArray;
public string ParkName;
public TextMeshProUGUI ParkNameText;
private void Start()
{
ParkName = ParkNameArray[Random.Range(0, ParkNameArray.Length)];
ParkNameText.text = ParkName.ToString();
}
}
以上是我的数组和我统一使用的随机范围进行编辑。
我将在下面添加一些图像,说明我丑陋的 UI 以及公园的数组列表。
下面的这张图片是我要按“骑什么?”的地方。按钮,它与刚刚被选中的公园有关。
解决方案
对象
这就是为什么OOP是一回事。
与其创建两个数组并试图找出谁将一个数组链接到另一个数组,不如将这些数组折叠成对象并创建一个数组。
例如,每个公园(对象)都包含游乐设施(一个数组)。有多个(一系列)公园。
public class Park {
public string parkName;
public Ride[] listOfRides; //Ride is similarly defined like Park is
}
然后你的其他代码:
{
public Park[] ParksArray;
//...
}
现在您只需随机选择一个公园,获取它的游乐设施,然后从该列表中随机选择一个游乐设施:
int randPark = Random.Range(0, ParksArray.Length);
Ride[] availableRides = ParksArray[randPark].listOfRides;
int randRide = Random.Range(0, availableRides.Length);
Debug.Log(ParksArray[randPark].name + ":" + availableRides[randRide].name);
推荐阅读
- google-sheets - 如何将 IF(AND) 与 ArrayFormula 结合起来
- python - 为什么即使在使用 cache=True 之后,Numba jit 编译的函数在连续调用函数时执行得更快?
- angular - 如何在角度元素中实现定位?
- python - 对象检测 opencv 需要一个整数(获取类型元组)
- android - ListView.setAdapter(android.widget.ListAdapter)' 在 android 中的空对象引用
- linux - 如何以特定方式重命名目录。重击
- azure - az vim run-command 使用参数调用 shell 脚本
- php - Laravel Dusk 和内存使用 - 如何关闭浏览器和自定义进程
- python - 我需要尽快向服务器发送响应,然后在flask中执行函数吗?
- python - 将事件记录转换为有总和的期间