轉(zhuǎn)載:http://www.manew.com/thread-103792-1-1.html
Unity自帶了一個(gè)EditorOnly的Tag姜胖。意思就是標(biāo)記過這個(gè)游戲?qū)ο螅辉贓ditor下生效不會(huì)被最終打進(jìn)包里淀散。這個(gè)功能其實(shí)很必要右莱,但是可能被很多團(tuán)隊(duì)都遺忘了。
例如:美術(shù)做的場(chǎng)景需要一些攝像機(jī)档插、角色慢蜓、特效來進(jìn)行輔助參照。這些東西單純只是用來參照的郭膛,并不希望打進(jìn)游戲包中晨抡。但是開發(fā)階段又不能再場(chǎng)景中刪除,因?yàn)閳?chǎng)景修改后美術(shù)還是希望有參照物進(jìn)行預(yù)覽则剃。
這一類東西耘柱,就非常適合標(biāo)記成EditorOnly,但是這個(gè)Tag有個(gè)致命的缺陷-“無法預(yù)覽” 因?yàn)閳?chǎng)景的東西非常多棍现,我們必須要很清楚的看到调煎,那些是標(biāo)記了EditorOnly的游戲?qū)ο螅偛荒苁謩?dòng)的一個(gè)個(gè)找吧己肮。
所以有了下面的這個(gè)腳本士袄。(掛在某個(gè)對(duì)象上即可)
#if UNITY_EDITOR
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class EditorOnly : MonoBehaviour {
[HideInInspector]
public string tag = "Untagged";
void OnDrawGizmos()
{
foreach (GameObject go in GameObject.FindGameObjectsWithTag(tag)) {
UnityEditor.Handles.Label(go.transform.position, tag);
}
}
}
[CustomEditor(typeof(EditorOnly))]
public class EditorOnlyEditor:Editor{
public override void OnInspectorGUI ()
{
base.OnInspectorGUI ();
EditorOnly gizmos = target as EditorOnly;
EditorGUI.BeginChangeCheck ();
gizmos.tag = EditorGUILayout.TagField("Tag for Objects:", gizmos.tag);
if (EditorGUI.EndChangeCheck ()) {
EditorUtility.SetDirty (gizmos);
}
}
}
#endif
如下圖所示,選擇tag以后就可以直接在SceneView視圖中查看到那些是當(dāng)前選中的Tag了谎僻。這是自定義的Gizmos功能。如果想再SceneView中整體隱藏艘绍,如下圖所示赤拒,勾掉它即可。