【发布时间】:2016-01-07 22:21:44
【问题描述】:
我正在从数据库中选择数据,然后使用 c# 将该数据分配给我的统一项目中的数组中的值。使用 php 脚本访问数据库,我的游戏调用服务器上的脚本。我的计划是增加船号并使用相同的脚本调用数据库中的另一艘船。这一切都很好,除了我在 c# 中的循环,它只执行一次。这是我的代码。 shipsAllowed 现在设置为 2 用于测试目的,数据库中有这艘船的记录。所以我做错了什么,看起来很简单,但对我不起作用。感谢您的帮助。
public void AddShipsToShipsArray()
{
for (int x = 1; x < ShipsAllowed; x++)
{
StartCoroutine(GetShipInfoFromDB(x));
}
}
IEnumerator GetShipInfoFromDB(int x)
{
shipInfoUrl = "http://localhost/fishwar/GetShipInfo.php?shipnum=" + x + "&id=" + accountNumber;
WWW shipInfoWWW = new WWW(shipInfoUrl);
yield return shipInfoWWW;
shipinfoRawString = shipInfoWWW.text;
Dictionary<string, object> shipInfo = MiniJSON.Json.Deserialize(shipinfoRawString) as Dictionary<string, object>;
shipArrayPosition = int.Parse((string)shipInfo["array_position"]);
ships[shipArrayPosition].shipName = (string)shipInfo["ship_name"];
ships[shipArrayPosition].departureTime = DateTime.Parse((string)shipInfo["departure_time"]);
ships[shipArrayPosition].isAtSea = bool.Parse((string)shipInfo["is_at_sea"]);
}
【问题讨论】:
-
旁注:如果您尝试创建minimal reproducible example,您可能会自己发现问题,或者至少使问题更有针对性(
yield return与问题代码演示无关)。
标签: c# for-loop unity3d yield-return