如果预先不想在编辑器中设置tag,就直接代码自动在编辑器中生成所需要添加的tag,很简单 代码如下:
/// <summary>
/// 检查tag列表中是否有tag,没有该tag添加此tag
/// </summary>
/// <param name="tag">所要设设置的tag</param>
public static void SetGameObjectTag(GameObject gameObject, string tag)
{
if (!UnityEditorInternal.InternalEditorUtility.tags.Equals(tag)) //如果tag列表中没有这个tag
{
UnityEditorInternal.InternalEditorUtility.AddTag(tag)//在tag列表中添加这个tag
}
gameObject.tag = tag
}
Unity版本问题、对象没有被选中。某些旧版本的Unity可能存在添加标签的bug。建议升级到最新版本。确保已经展开了Tags列表,才能看到“+”按钮。
标签名称只能包含字母、数字、下划线和空格,不能包含其他特殊字符。如果标签名称不符合要求,可能会导致无法添加标签。建议使用简单的英文单词或短语作为标签名称。
我正好也遇到了这个问题。
https://docs.unity3d.com/ScriptReference/GameObject-tag.html Unity3D官网中提到这么一段话:A tag can be used to identify a game object. Tags must be declared in the Tags and Layers manager before using them.
所以在使用tag之前需要在tags&layers管理器中先声明。
如下所示,
然而很不巧,我希望在程序中实现动态添加tag,上面这种方法并不能解决我的问题。
至于如何动态添加tag,代码我就不贴了,还请自行百度"unity 动态添加 tag",很多博客文章都有给出代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)