我在团结中挣扎。我想创建一个脚本,能够找到离玩家最近的对象(我设法做到了),以及离玩家第二近的对象。我的问题是如何修改此代码,使其也适用于第二个对象?
public class Robot2 : MonoBehaviour
{
public GameObject cameraHolder;
public Transform[] objects;
private Transform nearestObj;
private Transform secondObj;
void Update()
{
float lowestDist = Mathf.Infinity;
nearestObj = null;
secondObj = null;
foreach(Transform obj in objects)
{
float dist = Vector3.Distance(transform.position, obj.position);
if(dist < lowestDist)
{
lowestDist = dist;
nearestObj = obj;
}
}
Debug.DrawLine(transform.position, nearestObj.transform.position, Color.red);
cameraHolder.transform.position = nearestObj.transform.position;
}
}
您可以这样做:
float lowestDistance = Mathf.Infinity;
float nextLowestDistance = Mathf.Infinity;
nearestObject = null;
secondObject = null;
foreach ( Transform object in objects )
{
float dist = Vector3.Distance( object.position, transform.position );
if ( dist < lowestDistance )
{
if ( lowestDistance < nextLowestDistance )
{
nextLowestDistance = lowestDistance;
secondObject = nearestObject;
}
lowestDistance = dist;
nearestObject = object;
}
else if ( dist < nextLowestDistance )
{
nextLowestDistance = dist;
secondObject = object;
}
}
你可以像下面的代码一样使用LINQ:
Objects.ToList().OrderBy(o => Vector3.Distance(transform.position, o.position))[1]
或者
Objects.ToList().OrderByDescending(o => Vector3.Distance(transform.position, o.position))[1]
问题内容: 问题 : 给定 +ve 和 -ve 整数数组,我们需要在数组中找到总和接近零的一对。 例如: 问题答案: 您可以检查每一对数字并找到最小和。 java代码: 解决方案2: 对数组进行排序。 * 我们将维护两个索引,一个在开头(l=0),一个在结尾(r=n-1) 迭代直到 l < r * 计算 arr[l] + arr[r] 的总和 * 如果 abs (sum) < abs (minSu
问题内容: 我需要知道在对象数组中查找第二大元素的方法。例如 如果存在Book类的一系列对象,这些对象的属性如书名,价格,库存数量 我们如何列出价格第二高的书以及其他属性,例如名称和库存数量 问题答案: 做一个的从它,它的排序使用,并采取元素索引1。
我试图确定一个关键字名称是否存在于我的对象数组中。例如,我如何验证名称为name的键是否等于在函数调用中传递的参数?下面是进一步澄清的代码。
问题内容: Swift在Underscore.js中是否有类似_.findWhere的内容? 我有一个类型为struct的数组,想检查array是否包含属性等于的struct对象。 尝试使用,但它们仅适用于基本类型,例如或。引发有关不符合协议之类的错误。 问题答案: FWIW,如果您不想使用自定义功能或扩展名,则可以: 首先生成数组,然后从中生成数组。 如果阵列很大,则可能需要执行以下操作: 或许
所以这个问题以前被问过,但我的情况有点不同,因为我已经尝试了这个网站中建议的所有解决方案,我有一个多提及数组: 我还有另一个小数组: 我只想找到与这个“dup”在同一行的“original”。到目前为止,我尝试了查找、过滤和grep,但这些都没有解决我的问题。 我尝试过的代码:
我正在学习JS。假设我有以下对象数组: 注意,Nancy出现了两次(只改变了年龄)。假设我只想输出唯一的名称。如何输出上述对象数组,而不重复?ES6答案非常受欢迎。 相关(找不到在对象上使用的好方法): 从JavaScript数组中删除重复项 在JavaScript数组中查找重复值的最简单方法 编辑这是我尝试的。它适用于字符串,但我不知道如何使它适用于对象: