Unityでアプリを作っています。
指定した画像を開いてその画像にテキスト文字を入力(input)して
保存する仕組みを作りたいのですがやり方が分かりません。
画像に手書きで文字を入力する方法は
Assetsの「Simple drawing canvas」などで設置すれば可能なのですが
テキストを画像に入力する方法が見つかりません。
コードもしくはAssetsで可能な方法を知っていられる方お教えください。
下記コードはpngファイルを開いてTexture2Dに変換したところまでです。
ここからどうやればできるかヒントで結構ですのでお教えください。
環境)
PC: mac
Unity2019.4.0f1
言語:C#
public class GetPngSctipt : MonoBehaviour { #pragma warning disable 649 [SerializeField]GameObject drawObject; Sprite pngToSprite; string fileName = "001"; string dataPath; Texture2D editTexture; // Start is called before the first frame update void Start() { //pngを取得する dataPath = Application.dataPath + "/../a" + fileName + ".png"; ScreenCapture.CaptureScreenshot(dataPath); pngToSprite = LoadSprite(dataPath); drawObject.GetComponent<SpriteRenderer>().sprite = pngToSprite; //SpriteをTexture2Dに変換する editTexture = new Texture2D((int)pngToSprite.rect.width,(int)pngToSprite.rect.height); var pixels = pngToSprite.texture.GetPixels( (int)pngToSprite.textureRect.x, (int)pngToSprite.textureRect.y, (int)pngToSprite.textureRect.width, (int)pngToSprite.textureRect.height); editTexture.SetPixels(pixels); editTexture.Apply(); // rawImage.texture = editTexture; } // Update is called once per frame void Update() { } Sprite LoadSprite(string path) { if(string.IsNullOrEmpty(dataPath))return null; if(File.Exists(dataPath)) { byte[] bytes = File.ReadAllBytes(dataPath); Texture2D texture2D = new Texture2D(1, 1); texture2D.LoadImage(bytes); Sprite sprite = Sprite.Create(texture2D, new Rect(0,0, texture2D.width, texture2D.height), new Vector2(0.5f,0.5f)); return sprite; } return null; } }
回答2件
あなたの回答
tips
プレビュー