纳金网
标题:
Unity3D动态添加tag的代码
[打印本页]
作者:
烟雨
时间:
2017-11-29 19:11
标题:
Unity3D动态添加tag的代码
using UnityEngine;
using System.Collections;
using UnityEditor;
public class DemoText : MonoBehaviour {
// Use this for initialization
void Start () {
bool b = isHasTag("Player"); //随意挂载进行测试
Debug.Log(b);
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
AddTag("Zombie",cube);
}
// Update is called once per frame
void Update () {
}
//动态添加tag
private static void AddTag(string newtag, GameObject obj)
{
if (!isHasTag(newtag))
{
SerializedObject tagManager = new SerializedObject(obj);
SerializedProperty pro = tagManager.GetIterator();
while (pro.NextVisible(true))
{
if (pro.name == "m_TagString")
{
pro.stringValue = newtag;
tagManager.ApplyModifiedProperties();
}
}
}
else
{
obj.tag = newtag;
}
}
static bool isHasTag(string newtag)
{
for (int i = 0; i < UnityEditorInternal.InternalEditorUtility.tags.Length; i++)
{
if (UnityEditorInternal.InternalEditorUtility.tags[i].Equals(newtag))
{
return true;
}
}
return false;
}
}
复制代码
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5