こんにちは、私はこのエラーが発生しました。 アセット/ TCG/Scripts/card.cs(1232,71):エラーCS1622:値をイテレータから取得します。値を返すためにyield returnステートメントを使用するか、反復を終了するためにブレークするUnity c#イテレータから値を返すことはできません。値を返すためにyield returnステートメントを使用するか、繰り返しを終了するためにブレークする
コードを見て回っていて、私はそれを修正することはできませんが、私はそれを修正しましたが、あなたが穴コードを必要とするなら、それは私がそれを追加することを教えてください、エラーが示す部分です。
IEnumerator PayAdditionalCostAndPlay()
{
if (DiscardCost > 0 && ValidSpell())
{
Player.ActionCancelled = false;
Player.targets.Clear();
Debug.Log("this card has an additional discard cost");
for (int i = 0; i < DiscardCost; i++)
{
Player.NeedTarget = 21; // a card in hand to discard
while (Player.NeedTarget > 0)
{
yield return new WaitForSeconds(0.1f);
}
if (Player.ActionCancelled)
{
Debug.Log("action cancelled");
return false;
}
}
foreach (GameObject target in Player.targets) //discard
{
target.GetComponent<card>().Discard();
}
}
}