我正在尝试递归列表中的一堆游戏对象:
// get the relative position of the weapons to the ship
List<Transform> weaponPositions = ship.GetWeaponLocations(); // works
// set the positions of the weapons
for(int i = 0 ; i < equippedWeapons.Length && i < weaponPositions.Count ; i++)
{
equippedWeapons[i].GetComponent<Weapon>().setPosition(weaponPositions[i]);
}
但是,它似乎将最后一个“weaponPositions”应用于所有内容。所以 weaponPositions 是一个 Transform 类型的列表,例如我想将 weapon[0] 的位置设置为 weaponPosition[0] 的位置。
问题是,当它到达第三件武器(在本例中为最后一件)时,它会将 weaponPosition[2] 位置应用于之前出现的每件武器,而不仅仅是第 i 个索引。
武器是一个 SerailizedField:
[SerializeField] GameObject[] equippedWeapons;
在武器中,setWeapon 方法很简单:
Transform positionOfWeaponOnShip;
public void setPosition(Transform pos)
{
positionOfWeaponOnShip = pos;
}
我要问的问题是,我在这里以正确的方式使用列表吗?我很困惑为什么它不只将它应用于第 i 个值。我也不确定我还能在这里放什么有用的......
牛魔王的故事
慕尼黑的夜晚无繁华
MMMHUHU
相关分类