using UnityEditor; using UnityEngine; using UnityEngine.UI; namespace AlicizaX.UI.Extension.Editor { internal static class MenuExtension { [MenuItem("GameObject/UX/UXTextMeshPro", false, -1)] private static void CreateUxTextMeshProUx() { GameObject selectionObject = Selection.activeGameObject; var gameObject = new GameObject("UXTextMeshPro", typeof(UXTextMeshPro)); gameObject.transform.SetParent(selectionObject.transform); var rectTransform = gameObject.GetComponent(); var uxTextMeshPro = gameObject.GetComponent(); uxTextMeshPro.text = "UXTextMeshPro"; rectTransform.anchoredPosition = Vector2.zero; rectTransform.localPosition = Vector3.zero; rectTransform.pivot = new Vector2(0.5f, 0.5f); rectTransform.localScale = Vector3.one; Selection.activeGameObject = gameObject; } [MenuItem("GameObject/UX/RecyclerView", false, -1)] private static void CreateUxRecyclerView() { GameObject selectionObject = Selection.activeGameObject; if (selectionObject == null) return; const string prefabPath = "Packages/com.alicizax.unity.ui.extension/Editor/RecyclerView/Res/ScrollView.prefab"; GameObject prefab = AssetDatabase.LoadAssetAtPath(prefabPath); GameObject instance = (GameObject)PrefabUtility.InstantiatePrefab(prefab, selectionObject.transform); PrefabUtility.UnpackPrefabInstance(instance, PrefabUnpackMode.Completely, InteractionMode.UserAction); Selection.activeGameObject = instance; } } }