【发布时间】:2011-07-17 09:05:07
【问题描述】:
是否可以调用数组中的所有对象?还是使用数字是唯一的方法?
public void Update()
{
Targetting ge = (Targetting)target.GetComponent("Targetting");
enemies = ge.targets;
float attackDistanceP = Vector3.Distance(target.transform.position, transform.position);
foreach (Transform enemy in enemies)
{
float enemyDistance = Vector3.Distance(enemy.transform.position, transform.position);
print(enemyDistance);
}
Debug.DrawLine(transform.position, waypointPosition, Color.black);
if (attackDistanceP < 8)
disableNow = true;
if (attackDistanceP > 8)
disableNow = false;
}
我想调用敌人[] 数组中的所有对象。让所有的敌人都能看到对方。但我不想让他们看到自己。我使用 GameObject.FindGameObjectsWithTag 在另一个脚本中填充数组。
【问题讨论】:
-
你在标签中存储了什么?
-
我正在使用 List
enemies; -
我不完全理解你的问题的背景,所以我不会为你提供完整的答案或代码 sn-p,但你可以尝试检查敌人 ID 或其他在调用
enemies[]中的所有对象时,唯一标识符等于他自己的标识符。希望对您有所帮助。 -
我有一个数组,它遍历每个带有标签 == "Enemy" 的对象。此函数位于 Enemy 的脚本中。我的场景中有三个敌人,所以我得到三个距离变量,即脚本中的敌人与其他敌人之间的距离。但它也返回持有脚本的敌人的距离值。所以我想要的是它忽略他自己的标签,所以只返回 2 个值。我编辑了上面的脚本。