私のゲームでGameObjectsが発生していて、それらのオブジェクトが配列に保存されています。 この配列は、プレーヤーからの距離によってソートされます。boolがfalseの配列の最初の項目を取得します
プレイヤーがターゲット(オブジェクトの1つ)を取得している場合、そのオブジェクトのブール値 "Claimed"をtrueに設定して他のプレイヤーがそのオブジェクトを取得できなくする必要があります。
代わりに、「Claimed」というブール値がfalseの配列の最初の項目を取得する必要があります。
public void SearchFood()
{
AllFood = GameObject
.FindGameObjectsWithTag("Food")
.OrderBy(x => Vector3.Distance(this.transform.position, x.transform.position))
.ToArray();
ClosestPieceOfFood = AllFood
.First(Claimed => ClosestPieceOfFood.GetComponent<Food>().Claimed == false);
ClosestPieceOfFood.GetComponent<Food>().Claimed = true;
}
関数の第二法則は、イムが問題「=>主張」であることが、問題がである場合、私は本当に知らないのLINQの新しいすべてのIMなどを疑って、機能していません。
コンソールログに何らかのエラーが発生することはありません。
'関数の第2のルールは機能していません。より具体的にする必要があります。エラーが発生しますか?間違ったアイテムが返されますか?それはコンパイルされていませんか? 'ClosestPieceOfFood.GetComponent().Claimed == false'は' food => food.Claimed == false'ではないはずですか? "f =>!f.Claimed' –
DGibbs
var firstnontrue = Allfood.where(f => f.Claimed == false).firstordefault() – loneshark99