直接上代码,批量给BuildSetting设置图片,不用手一个一个拖
/*
* Icon路径:Application.dataPath + "/Res/Icon/";
* 工程路径"Assets/Res/Icon/"下,放icon图片;
* Icon文件名 :
* icon32
* icon64
* icon1024
*
*
* BuildSetting不会自动刷新,需要关闭页签,重新打开后可以看到变化;
* 实际上是Set成功的;
*/
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.iOS;
using System.IO;
public class IconSetting
{
private static Dictionary<string, Texture2D> m_dicIcons = new Dictionary<string, Texture2D>();
[MenuItem("自定义工具/批量操作PlayerSetting图片/自动装载iOS")]
public static void DoLogicIOS()
{
LoadAllIcons();
BuildTargetGroup platform = BuildTargetGroup.iOS;
SetIcons(platform, iOSPlatformIconKind.Application);
SetIcons(platform, iOSPlatformIconKind.Settings);
SetIcons(platform, iOSPlatformIconKind.Notification);
SetIcons(platform, iOSPlatformIconKind.Spotlight);
SetIcons(platform, iOSPlatformIconKind.Marketing);
Debug.Log("Set Icon Finish");
}
[MenuItem("自定义工具/批量操作PlayerSetting图片/清空Icon")]
public static void ClearAllIconSetting()
{
BuildTargetGroup platform = BuildTargetGroup.iOS;
ClearIcons(platform, iOSPlatformIconKind.Application);
ClearIcons(platform, iOSPlatformIconKind.Settings);
ClearIcons(platform, iOSPlatformIconKind.Notification);
ClearIcons(platform, iOSPlatformIconKind.Spotlight);
ClearIcons(platform, iOSPlatformIconKind.Marketing);
Debug.Log("Clear Icon Finish");
}
static void ClearIcons(BuildTargetGroup platform, PlatformIconKind kind)
{
PlatformIcon[] icons = PlayerSettings.GetPlatformIcons(platform, kind);
for (var i = 0; i < icons.Length; i++)
{
icons[i].SetTexture(null);
}
PlayerSettings.SetPlatformIcons(platform, kind, icons);
}
static void SetIcons(BuildTargetGroup platform, PlatformIconKind kind)
{
PlatformIcon[] icons = PlayerSettings.GetPlatformIcons(platform, kind);
for (var i = 0; i < icons.Length; i++)
{
string strSize = GetSize(icons[i].ToString());
if (m_dicIcons.ContainsKey(strSize))
{
icons[i].SetTexture(m_dicIcons[strSize]);
}
else
{
Debug.LogError("BuildSetting Icon - SetIcon, Not Contains Size : " + strSize);
}
}
PlayerSettings.SetPlatformIcons(platform, kind, icons);
}
static string GetSize(string strField)
{
int nIndex = strField.IndexOf("x");
return strField.Substring(1, nIndex - 1);
}
static void LoadAllIcons()
{
m_dicIcons.Clear();
string strProjectPath = Application.dataPath;
string strIconPath = strProjectPath + "/Res/Icon/";
string[] strIcons = Directory.GetFiles(strIconPath, "*.jpg", SearchOption.AllDirectories);
for (int i = 0; i < strIcons.Length; i++)
{
string strKey = Path.GetFileNameWithoutExtension(strIcons[i]);
strKey = strKey.Replace("icon", "");
if (m_dicIcons.ContainsKey(strKey))
{
Debug.LogError("BuildSetting Icon - LoadAllIcons, Same Name Icon : " + strKey);
continue;
}
string strOnePath = strIcons[i];
strOnePath = strOnePath.Replace(strProjectPath, "Assets");
Texture2D pic = AssetDatabase.LoadAssetAtPath(strOnePath, typeof(Texture2D)) as Texture2D;
if (pic == null)
{
Debug.LogError("BuildSetting Icon - LoadAllIcons, Load Field, Not a Texture2D Type : " + strOnePath);
continue;
}
m_dicIcons.Add(strKey, pic);
}
}
}
程序学无止尽。
欢迎大家沟通,有啥不明确的,或者不对的,也可以和我私聊
我的QQ 334524067 神一般的狄狄