【发布时间】:2019-09-07 18:44:54
【问题描述】:
我正在尝试让我的播放器在 unity2D 中漂浮在地面(泥土)之上。为此,我需要知道玩家和最近的泥土游戏对象之间的距离。我已经得到了一些东西,但我不能让它返回壁橱污垢游戏对象的字符串名称。
float distance = GameObject.Find("Player").transform.position.y -
GameObject.Find(FindClosestDirt()).transform.position.y;
public GameObject FindClosestDirt()
{
GameObject[] gos;
gos = GameObject.FindGameObjectsWithTag("Dirt");
GameObject closest = null;
float distance = Mathf.Infinity;
Vector3 position = transform.position;
foreach (GameObject go in gos)
{
Vector3 diff = go.transform.position - position;
float curDistance = diff.sqrMagnitude;
if (curDistance < distance)
{
closest = go;
distance = curDistance;
}
}
string closeDirtName = closest.ToString();
return closeDirtName;
}
Unity 显示此错误: 错误 CS1503:参数 1:无法从“UnityEngine.GameObject”转换为“字符串”。 即使我清楚地返回了 closest.ToString()。 我忽略了什么吗?
【问题讨论】: