unity 预制文本\n换行不起作用

目录

问题:预制体的文本在Inspector直接用\n换行不生效

原因:因为unity会默认把\n替换成\\n

问题:预制体的文本在Inspector直接用\n换行不生效

        预制体文本用换行符直接换好,如果要用代码替换换行,使用\n换行没有生效。

原因:因为unity会默认把\n替换成\\n

        需要把\\n替换成\n,以下是我写的一个替换工具

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System;
using System.IO;

/// <summary>
/// prefab文本换行替换
/// </summary>
public class PrefabNewLineEditor:EditorWindow
{
    private static string PREFAB_PATH = "Assets/Prefab";

    [MenuItem("Tools/UI/文本换行替换")]
    public static void PrefabNewLineText() 
    {
        string[] allPath = AssetDatabase.FindAssets("t:Prefab",new string[] { PREFAB_PATH } );

        for (int i = 0; i < allPath.Length; i++)
        {
            string path = AssetDatabase.GUIDToAssetPath(allPath[i]);
            var obj = PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath(path, typeof(GameObject))) as GameObject ;
            if (obj != null)
            {
                var texts = obj.GetComponentsInChildren<Text>(true);
                foreach (Text text in texts) 
                {
                    text.text = text.text.Replace("\\n", "\n");
                }
            }
            PrefabUtility.SaveAsPrefabAsset(obj, path);
            GameObject.DestroyImmediate(obj);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
}

文章来源地址https://uudwc.com/A/P5YBo

原文地址:https://blog.csdn.net/Fivelin/article/details/128821078

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月27日 16:27
简单易懂:Vue3框架三天速成(一)
下一篇 2023年06月27日 16:28