在很多时候,要批量操作非预制体资源,比如场景,unity是提供了相关方法的;
以下脚本是在指定文件夹下筛选出所有场景,将场景内所有带中文的文本(Text组件)添加一个多语言翻译组件(Localize)......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using I2.Loc;
public class AddI2LocalTool : Editor
{
[MenuItem("Tools/添加多语言组件")]
public static void AddI2ToAllText()
{
//筛选文件夹和目标类型
var guidArr = AssetDatabase.FindAssets("t:scene", new string[] { "Assets/XXX" });
Debug.Log("len =" + guidArr.Length);
foreach (var guid in guidArr)
{
var path = AssetDatabase.GUIDToAssetPath(guid);
//Debug.Log(path);
//打开场景
var scene = UnityEditor.SceneManagement.EditorSceneManager.OpenScene(path);
foreach (GameObject obj in Resources.FindObjectsOfTypeAll(typeof(GameObject)))
{
Text txt = obj