BLOG main image
for our next (37)
Dev (32)
Mac (1)
Windows (2)
FreeTalk (1)
Shell (1)
Private (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2011. 7. 2. 01:24
아래 코드는 Texture 들을 선택해서 일괄적으로 포멧을 변경하는 코드입니다.
응용하면 다른 타입도 가능합니다.
아래 코드는 Assets/Editor/CusomMenu.cs 에 생성하셔야 합니다.
using UnityEditor;
using UnityEngine;
using System.Collections;

public class CustomMenu : ScriptableObject
{
	// ----------------------------------------------------------------------------
	[MenuItem ("CustomMenu/Texture Format")]
	static void ChangeTexture() 
	{
		SeletedChangeTexture();
	}
	
	static void SeletedChangeTexture()
	{
		Object[] textures = GetSelectedTextures();
		Selection.objects = new Object[0];
		
		int count = 0;
		foreach(Texture2D texture in textures)
		{			
			count++;
			string path = AssetDatabase.GetAssetPath(texture);
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			//texture.wrapMode = TextureWrapMode.Clamp;
			textureImporter.textureType = TextureImporterType.Advanced;
			textureImporter.mipmapEnabled = false;
			textureImporter.npotScale = TextureImporterNPOTScale.None;
			textureImporter.maxTextureSize = 4096;
			textureImporter.textureFormat = TextureImporterFormat.AutomaticTruecolor;
			AssetDatabase.ImportAsset(path);
			
			Debug.Log(string.Format("[{0}/{1}] ChangeTexture progress : {2}", count, textures.Length, path));
		}
	}
	
    static Object[] GetSelectedTextures()
    {
        return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
    }	
}

'Dev > Unity3D' 카테고리의 다른 글

unity3d data path!  (0) 2011.12.14
Unity3D Mesh Create Code  (0) 2011.10.20
Unity3D 에서 XML Serialize Encrypt/Decrypt.  (3) 2011.04.22
FindObjectOfType fail.  (0) 2010.12.14
Unity Script 와 Obejct-C 연동.  (0) 2010.11.09
2011. 4. 22. 22:19
1. Encrypt
     //-----------------------------------------------------------------------------
    public static void SerializeEncryptObject(string path, object obj, System.Type type, SymmetricAlgorithm key)
    {
        using(FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
        {
            using(CryptoStream cs = new CryptoStream(fs, key.CreateEncryptor(), CryptoStreamMode.Write))
            {
                using(StreamWriter sw = new StreamWriter(cs, Encoding.UTF8))
                {               
                    try
                    {
                        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                        ns.Add("", "");
                       
                        XmlSerializer serializer = new XmlSerializer(type);
                        serializer.Serialize(sw, obj, ns);
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogWarning(ex.ToString());   
                    }
                    finally
                    {
                        sw.Close();
                        cs.Close();
                        fs.Close();
                    }
                }
            }
        }
    }   

2. Decrypt
    //-----------------------------------------------------------------------------
    public static string LoadXmlFromEncryptFile(string _filePath, SymmetricAlgorithm key)
    {
        if (File.Exists(_filePath) == false)
        {
            _deserializeErrorString = System.String.Format("File({0}) does not exists", _filePath);
            return "";
        }
       
        using(FileStream fs = File.Open(_filePath, FileMode.Open))
        {
            using(CryptoStream cs = new CryptoStream(fs, key.CreateDecryptor(), CryptoStreamMode.Read))
            {
                using(StreamReader sr = new StreamReader(cs, Encoding.UTF8))
                {
                    try
                    {
                        return sr.ReadToEnd();
                    }
                    catch(System.Exception ex)
                    {
                        Debug.LogWarning(ex.ToString());
                        _deserializeErrorString = ex.ToString();
                    }
                    finally
                    {
                        sr.Close();
                        cs.Close();
                        fs.Close();
                    }
                }
            }
        }
       
        return "";
    }

3. Usage
-
private readonly string SECRET_KEY = "12345678";    // must be 64bit, 8bytes
-
private System.Security.Cryptography.DESCryptoServiceProvider mCryptoProvider = null;
-
mCryptoProvider = new System.Security.Cryptography.DESCryptoServiceProvider();
mCryptoProvider.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(SECRET_KEY);        mCryptoProvider.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(SECRET_KEY);

-
SerializeEncryptObject("FilePath", Type, mCryptoProvider);
string xmlString = LoadXmlFromEncryptFile("FilePath", mCryptoProvider);

'Dev > Unity3D' 카테고리의 다른 글

Unity3D Mesh Create Code  (0) 2011.10.20
Unity3D Inspector object 선택후 일괄 처리  (0) 2011.07.02
FindObjectOfType fail.  (0) 2010.12.14
Unity Script 와 Obejct-C 연동.  (0) 2010.11.09
Unity3D 3.0 과 OpenFeint 2.7.4 연동  (4) 2010.11.02
2011. 4. 6. 11:10
find . -name ".svn" -type d -exec rm -rf {} \;