为什么在向游戏对象添加新标签时我遇到异常标签:B未定义?

时间:2017-05-22 16:15:58

标签: c# unity3d unity5

public void generateObjectOnTerrain()
    {
        generatedObjects = new List<GameObject>();
        for (int i = 0; i < objectsToInstantiate; i++)
        {
            //Generate random x,z,y position on the terrain
            float randX = UnityEngine.Random.Range(xTerrainPos, xTerrainPos + terrainWidth);
            float randZ = UnityEngine.Random.Range(zTerrainPos, zTerrainPos + terrainLength);

            float yVal = Terrain.activeTerrain.SampleHeight(new Vector3(randX, 0, randZ));

            //Generate random x,y,z scale on the terrain
            randScaleX = Random.Range(3, 70);
            randScaleY = Random.Range(70, 170);
            randScaleZ = Random.Range(50, 270);

            //Apply Offset if needed
            yVal = yVal + yOffset;

            //Generate the Prefab on the generated position        
            objInstance = Instantiate(prefab, new Vector3(randX, yVal, randZ), Quaternion.identity);
            if (randomScale == true)
                objInstance.transform.localScale = new Vector3(randScaleX, randScaleY, randScaleZ);

            if (name != "")
                objInstance.name = name;

            if (tagName != "")
                objInstance.tag = tagName;

            if (parent)
                objInstance.transform.parent = this.transform;

            generatedObjects.Add(objInstance);
        }
    }

例外是在行

objInstance.tag = tagName;

tagName是一个全局字符串变量,设置在“”的顶部 我正在尝试为每个GameObject添加一个标记但是获得此B异常。 尝试了objInstance.transform.tag但同样的例外。

1 个答案:

答案 0 :(得分:0)

如果您没有在项目的Unity编辑器中首先定义标记,则无法将标记添加到GameObject。进入检查器,然后选择“标签”。然后,您将获得一个选项“添加标签...”,您可以使用该选项添加所需的标签名称。由于要定义要添加到GameObject的标记,因此不会再出现此错误。确保要添加的标记的名称与标记列表中的现有名称相对应。

enter image description here

要了解有关标记及其使用方法的更多信息,您还可以检查Unity manual的问题。