3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

uGUIで禁則処理する の続き

Last updated at Posted at 2017-02-08

前回

uGUIで禁則処理する - Qiita

実際には、前回の続きというより補足、提案です。

今回 uGUIのTextクラスを継承するのはいかがでしょうか…?

uGUIのTextクラスは継承可能となっていますので、禁則処理するメソッドを追加する形で作ってみました。

HyphenationJpn.cs
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.UI;
using System.Text.RegularExpressions;
using System.Text;
using System;

[ExecuteInEditMode]
public class HyphenationJpn : Text
{
	// http://answers.unity3d.com/questions/424874/showing-a-textarea-field-for-a-string-variable-in.html
	public new string text
	{
		get { return m_Text; }
	}

	private RectTransform _RectTransform
	{
		get
		{
			if (_rectTransform == null)
				_rectTransform = GetComponent<RectTransform>();
			return _rectTransform;
		}
	}
	private RectTransform _rectTransform;

	protected override void OnRectTransformDimensionsChange()
	{
		base.OnRectTransformDimensionsChange();
		UpdateText(text);
	}

	protected override void OnValidate()
	{
		base.OnValidate();
		UpdateText(text);
	}

	public void UpdateText(string str)
	{
		m_Text = GetFormatedText(str);
	}

	// 以下省略。
}

Setでも、Getでもなく、UpdateText(string str)に。
textのsetterを使われると、ちゃんと動かないので、overrideせずにプロパティを定義して、setterを使えなくしてます。

Textのかわりにこちら1つをアタッチする形で使います。

いかがでしょう…?

ソース全文は以下に。
ShunMc/HyphenationJpn_uGUI: uGUIでの禁則処理

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?