C# 如何在循环中检查bool是否为false

C# 如何在循环中检查bool是否为false,c#,class,loops,for-loop,unity3d,C#,Class,Loops,For Loop,Unity3d,我试图循环遍历一系列类。该类有两个变量:变换和布尔 我想在另一个脚本中循环,看看当前位置是否被占用,如果被占用,bool将被设置为true 我该怎么做呢 public Positions[] PosInObect = new Positions[1]; [System.Serializable] public class Positions { public Transform pos; public bool isFilled; } for (int i =

我试图循环遍历一系列类。该类有两个变量:变换和布尔

我想在另一个脚本中循环,看看当前位置是否被占用,如果被占用,bool将被设置为true

我该怎么做呢

 public Positions[] PosInObect = new Positions[1];

 [System.Serializable]
 public class Positions
 {
     public Transform pos;
     public bool isFilled;
 }

 for (int i = 0; i < TheObject.GetComponent<GetInObject>().PosInObect.Length; i++) 
 {

 }
public Positions[]PosInObect=新职位[1];
[系统可序列化]
公职
{
公共转换pos;
公共图书馆已满;
}
对于(int i=0;i
好的,您只需访问相关索引处的元素,然后检查字段值:

 if (TheObject.GetComponent<GetInObject>().PosInObect[i].isFilled)
如果您确实需要位置,我将首先使用局部变量获取数组一次:

var positions = TheObject.GetComponent<GetInObject>().PosInObect;
for (int i = 0; i < positions.Length; i++)
{
    if (positions[i].isFilled)
    {
        ...
    }
}
var positions=TheObject.GetComponent().PosInObect;
对于(int i=0;i

我还建议使用属性而不是公共字段,并遵循.NET命名约定。

这可以在foreach循环中完成。您仍然可以从该类实例访问变量

foreach(Positions pos in TheObject.GetComponent<GetInObject>().PosInObect)
{
    if(pos.isFilled)
    {
       //Do something
    }
}
foreach(在object.GetComponent().PosInObect中定位pos)
{
如果(位置已填充)
{
//做点什么
}
}

标签描述中的第一句话是“不要在有关UNITY游戏引擎的问题上使用(使用:取而代之)!!”您显示的代码有一个大小为1的数组,不需要太多循环。:)我只是用1来测试,因为问题中的物体没有多个座位,稍后他们会有一个以上的物体,玩家可以使用好的,我必须等3分钟才能接受,但这是完美的,谢谢你教了我这么多,分配这是非常有用的一个快速问题,我如何才能公开位置?我将使用什么变量类型,以便可以访问其他变量class@pvtctrlalt当前位置但是关于公开你有什么要求?您当前已将所有内容显示为public…不,我的意思是这一位var positions=TheObject.GetComponent().PosInObect;我如何使它在其他函数中可用,因为目前它是本地的
foreach(Positions pos in TheObject.GetComponent<GetInObject>().PosInObect)
{
    if(pos.isFilled)
    {
       //Do something
    }
}