[MenuItem("Tools/创建 Roles Prefab")]
static void Create()
{
string folderName = "Assets/Res/Sprites/Roles/";
DirectoryInfo folder = new DirectoryInfo(folderName);
FileInfo[] files = folder.GetFiles();
int success = 0;
foreach (FileInfo f in files)
{
success++;
if (f.Extension.ToLower() == ".png")
{
DoCreatePrefab(f.FullName.Replace("\\", "/").Replace(Application.dataPath, "Assets"), f.Name.Substring(0, f.Name.Length - 4));
EditorUtility.DisplayProgressBar("创建 Roles Prefab", f.Name, success / 1f / files.Length);
// if (success >= 1) break;
}
}
EditorUtility.ClearProgressBar();
AssetDatabase.Refresh();
}
static void DoCreatePrefab(string file, string filename)
{
string prefabPath = "Assets/Res/Prefabs/NPC/" + filename + ".prefab";
if (File.Exists(prefabPath)) return;
Debug.Log(prefabPath);
string clonePrefabPath = "Assets/Res/Prefabs/NPC/Base.prefab";
GameObject prefabRef = (GameObject)AssetDatabase.LoadMainAssetAtPath(clonePrefabPath);
GameObject prefabObj = (GameObject)PrefabUtility.InstantiatePrefab(prefabRef);
var script = prefabObj.GetComponent<NPC>();
script.skin = filename;
PrefabUtility.UnpackPrefabInstance(prefabObj, PrefabUnpackMode.OutermostRoot, InteractionMode.AutomatedAction);
var spr = prefabObj.GetComponent<SpriteRenderer>();
var assets = AssetDatabase.LoadAllAssetsAtPath(file);
spr.sprite = assets[1] as Sprite;
GameObject obj = PrefabUtility.SaveAsPrefabAsset(prefabObj, prefabPath);
GameObject.DestroyImmediate(prefabObj);
}
用脚本生成 Prefab
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 原创:版权©归fclzuzu所有 版本:V1.6.8 整理:李苒晴 特性:很实用的运维工具|网工神器| 前言: 据...
- echo 重定向dst.sh比如从数据库中获取到一个字符串,然后要写到一个文件。a=xxx'ooo'hhhh'ee...