public static void CreateSDFImgs() { Scene scene = EditorSceneManager.GetActiveScene(); GameObject[] objs = scene.GetRootGameObjects(); for (int i = 0; i < objs.Length; i++) { GameObject obj = objs[i]; char[] letterList = "abcdefghijklmnopqrstuvwxyz".ToCharArray(); if (obj.name == "Canvas") { Vector3 pos = Vector3.zero; for (int j = 0; j < letterList.Length; j++) { Material material = AssetDatabase.LoadAssetAtPath("Assets/SignedDistanceField/sdf_mat_ui.mat", typeof(Material)) as Material; string letter = letterList[j].ToString(); string upperName = letter.ToUpper(); string upperSpritePath = "Assets/SignedDistanceField/sdf/" + letter + "_upper_sdf.png"; Sprite upperSprite = AssetDatabase.LoadAssetAtPath(upperSpritePath, typeof(Sprite)) as Sprite; GameObject upperObj = new GameObject(upperName); SDFImage upperSDFImg = upperObj.AddComponent <SDFImage>(); upperSDFImg.material = material; upperSDFImg.color = Color.white; upperSDFImg.style = SDFStyle.PURE; upperSDFImg.sprite = upperSprite; upperObj.transform.SetParent(obj.transform); upperObj.GetComponent <RectTransform>().sizeDelta = new Vector2(64, 64); upperObj.transform.localScale = Vector3.one; upperObj.transform.localRotation = Quaternion.identity; upperObj.transform.localPosition = pos; pos = pos + new Vector3(64, 0, 0); string lowerName = letter.ToLower(); string lowerSpritePath = "Assets/SignedDistanceField/sdf/" + letter + "_lower_sdf.png"; Sprite lowerSprite = AssetDatabase.LoadAssetAtPath(lowerSpritePath, typeof(Sprite)) as Sprite; GameObject lowerObj = new GameObject(lowerName); SDFImage lowerSDFImg = lowerObj.AddComponent <SDFImage>(); lowerSDFImg.material = material; lowerSDFImg.color = Color.white; lowerSDFImg.style = SDFStyle.PURE; lowerSDFImg.sprite = lowerSprite; lowerObj.transform.SetParent(obj.transform); lowerObj.GetComponent <RectTransform>().sizeDelta = new Vector2(64, 64); lowerObj.transform.localScale = Vector3.one; lowerObj.transform.localRotation = Quaternion.identity; lowerObj.transform.localPosition = pos; pos = pos + new Vector3(64, 0, 0); } } } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUI.changed) { target = (SDFImage)serializedObject.targetObject; UpdateView(); } }