选择随机数后,是否可以只进入第一个if
语句一次,然后每隔一次选择该数字就跳过一次?
int Randomizer;
int Random1;
int Random2;
public void RandomButton()
{
Randomizer = Random.Range(1,3);
if (Randomizer == 1)
{
Random1 = 1;
Debug.Log("First Value");
if (Random1 == 1)
{
Debug.Log("Nested Value");
}
}
if (Randomizer == 2)
{
Debug.Log("Second Value");
if (Random2 == 2)
{
Debug.Log("Nested Value");
}
}
}
答案 0 :(得分:1)
如果您只想使用一次随机数,则可以将这类信息保存到一个更好的数据结构中,例如HashSet
。它具有仅包含唯一数字的属性。您可以利用这种数据结构的性质,因此不必为要收集的每个随机数创建变量。
using System.Collections.Generic
HashSet<int> RandomNumbersUsed = new HashSet<int>();
public void RandomButton()
{
int randomNumber = Random.Range(1,3);
if (!RandomNumbersUsed.Contains(randomNumber))
{
// Add it to the HashSet so that it cannot be used again
}
else
{
// Tell the user that the random has been selected before
}
if (randomNumber == 1)
{
// Do processing when random == 1
}
if (randomNumber == 2)
{
// Do processing when random == 2
}
// Continue adding necessary random numbers
}
您正在寻找if-else
块。
if (Random == 1)
{ ... }
else if (Random == 2)
{ ... }
答案 1 :(得分:1)
如果我对您的理解正确,那么您想在第一次选择一个数字时输出一件事,然后在以后每次选择相同的数字时又输出一件事。如果是正确的话,我认为使用现有代码执行此操作的最简单方法是将嵌套Random1
语句的else
块内的if/else
的值分配给检查{ {1}}。这样,您只需分配一次:
Random1
答案 2 :(得分:-2)
对不起,人们误导性问题,但我现在才发现,嘿嘿和平:))我想要实现的是
int Randomizer;
int Random1;
int Random2;
public void RandomButton()
{
Randomizer = Random.Range(1,3);
if (Randomizer ==1)
Random1 += 1;
if (Random1==1)
Debug.Log("Nested Value 1");
if (Random1==2)
Debug.Log("Nested Value 2");
}