gameObject.name返回脚本名称,而不是游戏对象名称

时间:2017-05-25 03:54:33

标签: unity3d

我有一个脚本LevelCube,它附加到我场景中的游戏对象上。单击该对象时,它会调用此脚本中名为PickCube()

的函数

现在,我只是想在我的场景中找到这个游戏对象的位置。

这是我的功能:

public void PickCube ()
    {
        Debug.Log (gameObject.name);
    }

奇怪的是,这个日志的输出只是说“LevelCube”,即脚本的名称。我认为gameObject引用了脚本所附加的GameObject。这是怎么回事?

如果有任何用处,可以选择编辑器。您可以看到InvertedSphere突出显示。这是我试图获得位置的游戏对象。 enter image description here

2 个答案:

答案 0 :(得分:0)

感谢@Draco18我意识到我正在提供一个不同的对象,它在我的事件触发器中也有onClick方法的LevelCube脚本。所以它调用我的函数而不是我的InvertedSphere。

答案 1 :(得分:-1)

试试gameObject.transform.name。 您在层次结构中看到的是转换的名称。如果您使用gameObject.name,则会将其转换为Object.name并获取当前对象的名称。