我複製從代碼:https://forum.unity3d.com/threads/clean-est-way-to-find-nearest-object-of-many-c.44315/Unity C# - 如何修復此代碼?
但這代碼:
Transform GetClosestCube (Transform[] cubes);
void GetClosestCube()
{
{
Transform bestTarget = null;
float closestDistanceSqr = Mathf.Infinity;
Vector3 currentPosition = transform.position;
foreach(Transform potentialTarget in cubes)
{
Vector3 directionToTarget = potentialTarget.position - currentPosition;
float dSqrToTarget = directionToTarget.sqrMagnitude;
if(dSqrToTarget < closestDistanceSqr)
{
closestDistanceSqr = dSqrToTarget;
bestTarget = potentialTarget;
}
}
return bestTarget;
}
}
它給人的錯誤:
Assets/Player.cs(29,12): error CS0501: `Player.GetClosestCube(Transform[])' must have a body because it is not marked abstract, extern, or partial
如果我用它究竟是如何在線程的代碼:
void GetClosestCube()
{
{
Transform GetClosestCube (Transform[] cubes)
{
Transform bestTarget = null;
float closestDistanceSqr = Mathf.Infinity;
Vector3 currentPosition = transform.position;
foreach(Transform potentialTarget in cubes)
{
Vector3 directionToTarget = potentialTarget.position - currentPosition;
float dSqrToTarget = directionToTarget.sqrMagnitude;
if(dSqrToTarget < closestDistanceSqr)
{
closestDistanceSqr = dSqrToTarget;
bestTarget = potentialTarget;
}
}
return bestTarget;
}
}
}
Error: Assets/Player.cs(34,28): error CS1525: Unexpected symbol
(', expecting
,',;', or
='
爲什麼downvotes?難道我做錯了什麼? – Jip1912
我想你需要在複製代碼之前閱讀C#初學者書。該代碼是無效的C#,它試圖聲明一個方法'變換GetClosestCube(變換[]立方體]'_inside另一個方法''無效GetClosestCube()'。這是不可能的(這裏沒有任何意義)。您寧可要求代碼作者澄清, –
@ Jip1912:鏈接中的代碼看起來不同於代碼 已粘貼到問題中。 – apocalypse