2023年10月19日木曜日

Unityで一文字つづ表示する一番シンプルな方法C#

 UnityのレガシーTextでも使える一文字つづ表示する一番シンプルな方法です。

ソース

private void SkipMode()

    {

StartCoroutine(Mojiokuri());

}

private string mess = "こんにちは、今日もよろしく";

private string[] words;

//コルーチン

IEnumerator Mojiokuri()

{

words = mess.Select(x => x.ToString()).ToArray();

foreach (string word in words)

{

//0.1秒ごとに1文字表示する

od.uimesse.text = od.uimesse.text + word;

yield return new WaitForSeconds(0.1f);

}

}

所感

テキストメッシュプロを使わないシンプルな方法です。

デフォで付けてほしい。

2023年10月18日水曜日

Unity Colorをシリアライズする

UniyでimageのColorクラスを保存しようとしたら以下のエラーが表示されました。

>SerializationException: Type 'UnityEngine.Color' in Assembly 'UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

解決方法

Colorを文字型に相互変換して保存する

 public static Color ToColor(string str)

    {//文字型をカラーに変換

Color color;

if (ColorUtility.TryParseHtmlString(str, out color))

{

//変換成功

}

else

{

//変換失敗

color = Color.clear;

}


return color;


}

public static string ToStringColor(Color color)

    {

string strcolor = ColorUtility.ToHtmlStringRGB(color);


return strcolor;

}

2023年10月5日木曜日

Unity if StartsWith("")が動作しない

 StartsWithに空文字は使えません。

使用例

if (str.StartsWith(""))すべての文字をイフブロックに入れてしまう。

if (str.Equals(""))空文字だけをイフブロックに入れる。

解決方法

 StartsWithは文字列の先頭を判別してくれる関数です。

空文字の判断はEqualsを使います。