鍦╱nity涓紝tag鏄竴涓ソ涓滆タ锛屾垜浠彲浠ョ敤tag鏉ュ尯鍒嗙墿浣擄紝涔熷彲浠ラ氳繃tag鏉ュ揩閫熷湴鏌ユ壘鐗╀綋銆備絾鏄編涓笉瓒崇殑鏄紝tag鏄竴涓瓧绗︿覆string銆備负浠涔堣缇庝腑涓嶈冻鍛紵
鍥犱负鍋囧鎴戜滑鍦ㄤ竴涓剼鏈噷闈㈡兂瑕佹湁涓涓猅ag瀛楁锛岄兘鍙兘瀹氫箟涓涓猻tring瀛楁銆
using UnityEngine; public class TagObjFinder : MonoBehaviour { public string Tag; public GameObject[] FindGos { get; private set; } public void Start() { FindGos = GameObject.FindGameObjectsWithTag(Tag); } }
鑰岃繖鏍风殑璇濓紝鍦ㄧ紪杈戝櫒涓紝灏遍潪甯镐笉鏂逛究濉啓锛屼篃闈炲父瀹规槗鍑洪敊銆
鏈変竴浜涗汉浼氶噰鐢–ustomEditor鐨勬柟娉曪紝鍒╃敤TagField鍙互闈炲父濂藉湴浣跨敤Tag涓嬫媺妗嗐傝繖绉嶉氳繃鑷畾涔夊睘鎬ч潰鏉跨殑鏂规硶鍏跺疄骞朵笉璧炴垚锛屽洜涓烘讳笉鍙兘缁欐瘡涓涓渶瑕佺敤鍒皌ag鐨勮剼鏈兘涓撻棬缁欏畠鍐欎竴涓狢ustomEditor銆
鑰岀浜屼釜鍘熷洜鏄湪浠g爜涓娇鐢ㄤ簡澶ч噺琛ㄧずtag鐨剆tring锛岄潪甯镐笉浼橀泤锛屾煡鎵惧拰缁存姢閮界浉褰撲笉鏂逛究銆傛瘮濡傦細缁忓父鐪嬪埌GameObject.FindGameObjectsWithTag(鈥淧layer鈥)鎴栬呮槸if(gameObject.tag=="GameController鈥);杩欐牱鐨勪唬鐮併
閭d箞鏈変汉涔熸兂鍒板姙娉曪紝灏辨槸鎵嬪姩瀹氫箟锛宑onst鎵鏈夌殑tag銆傛瘮濡
public const string TagPlayer=鈥漃layer鈥;
public const string TagMainCamera=鈥滿ainCamera鈥;
纭疄杩欐槸涓涓柟娉曘傞氳繃鏌ユ壘const鍙橀噺鍙互鎵惧埌鎵鏈夌殑寮曠敤锛岄潪甯告柟渚裤傚彲鎯滅殑鏄紝鍦ㄥ睘鎬ч潰鏉夸腑锛屼緷鐒堕渶瑕佹墜鍔ㄥ~鍐欍
鏃㈢劧const涓嶈鐨勮瘽锛屾槸涓嶆槸鍙互浣跨敤鏋氫妇鍛紵褰撶劧鍙互锛岃屼笖闈炲父浼橀泤銆傚睘鎬ч潰鏉夸腑杩樿兘閫夋嫨锛岄潪甯搁傚悎銆
public enum EmTag { Untagged, Respawn, Finish, EditorOnly, MainCamera, Player, GameController, }
鎴戜滑鏀瑰啓涓涓婽agObjFinder
using UnityEngine; public class TagObjFinder : MonoBehaviour { public EmTag Tag; public GameObject[] FindGos { get; private set; } public void Start() { FindGos = GameObject.FindGameObjectsWithTag(Tag.ToString()); } }
涓嶈繃鏈変竴涓夯鐑︾殑灏辨槸锛屽鏋滄垜鍦╱nity涓鍔犱簡涓涓猼ag锛屽氨闇瑕佸鍔犲湪浠g爜涓竴涓灇涓惧笺傝繖鏃跺欙紝unity鐨勬槗鎵╁睍鎬у氨鍙戞尌鍑烘潵浜嗭紝鎴戜滑瀹屽叏鍙互鑷姩鐢熸垚杩欎釜EmTag鏋氫妇鐨勪唬鐮併
using System.IO; using System.Text; using UnityEditor; using UnityEditorInternal; using UnityEngine; public class TagEnumGenarator : MonoBehaviour { [MenuItem("Tools/GenTagEnum")] public static void GenTagEnum() { var tags = InternalEditorUtility.tags; var arg = ""; foreach (var tag in tags) { arg += "\t" + tag + ",\n"; } var res = "public enum EmTag\n{\n" + arg + "}\n"; var path = Application.dataPath + "/Tool/EmTag.cs"; File.WriteAllText(path, res, Encoding.UTF8); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }
閫氳繃InternalEditorUtility.tags鑾峰彇鍒皍nity涓凡鏈夌殑鎵鏈塼ag锛岀劧鍚庨氳繃File.WriteAllText鏂规硶鍐欏叆鍒颁竴涓猚s鏂囦欢涓紝杩欓噷鎶婅繖涓枃浠禘mTag.cs鏀惧湪浜嗏滱ssets/Tool/鈥濅笅銆
缂栬瘧瀹屾垚锛宱k銆傝繖鏍峰彧瑕佸鍔爐ag鐨勬椂鍊欙紝鐐瑰嚮涓涓嬭彍鍗曚笂鐨Tools->GenTagEnum灏卞彲浠ュ悓姝ヤ唬鐮佷簡銆傜劧鍚庢剦蹇湴鎶涘純string tag锛屽揩涔愬湴浣跨敤enum tag銆