欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

unity3d資源打包加密-創(chuàng)新互聯(lián)

資源打包腳本,放到Assets\Editor 文件夾下

專注于為中小企業(yè)提供成都做網站、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)淶水免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。

using UnityEngine;

using System.Collections;

using UnityEditor;

using System.IO;

public class assetPack : Editor

{

[MenuItem("Custom Editor/Save Scene2")]

static void ExportResource()

{

// Bring up save panel

string path = EditorUtility.SaveFilePanel("Save Resource", "", "New Resource", "unity3d");

if (path.Length != 0)

{

// Build the resource file from the active selection.

Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);

BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path,

               BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);

Selection.objects = selection;

}

}

[MenuItem("Custom Editor/Make unity3d file to bytes file")]

static void ExportResourceNoTrackSS()

{

Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);

foreach(Object obj in selection)

{

string path2 = AssetDatabase.GetAssetPath(obj);

FileStream fs = new FileStream(path2, FileMode.Open, FileAccess.ReadWrite);

byte[] buff = new byte[fs.Length];

fs.Read(buff, 0, (int)fs.Length);

string password = "llh";

packXor(buff, buff.Length, password);

Debug.Log("filelength:" + buff.Length);

fs.Close();

string BinPath = path2.Substring(0, path2.LastIndexOf('.')) + ".bytes";

FileStream cfs = new FileStream(BinPath, FileMode.Create);

cfs.Write(buff, 0, buff.Length);

Debug.Log("filelength:" + buff.Length);

buff = null;

cfs.Close();

}

}

static void packXor(byte[] _data, int _len, string _pstr)

{

int length = _len;

int strCount = 0;

for (int i = 0; i < length; ++i)

{

if (strCount >= _pstr.Length)

strCount = 0;

_data[i] ^= (byte)_pstr[strCount++];

}

}

}

菜單上就會出現(xiàn)兩個子菜單, 把要打包的資源做成Prefab,選中資源,然后菜單Custom Editor/Save Scene2 輸入名字新生成的文件,再選中新生成的文件,點擊菜單Custom Editor/Make unity3d file to bytes file  輸入名字

又生成了一個文件,再點擊這個文件,菜單Custom Editor/Save Scene2 ,這樣就打包加密好了

即打包AssetBundle之后加密再重新打包AssetBundle(能否直接加密打包?顯然是不行的,加載資源時,LoadBundle會通過解密之后的字節(jié)重新創(chuàng)建AssetBundle,所以必須先打包出AssetBundle)

加載打包資源

using UnityEngine;

using System.Collections;

public class loadnew : MonoBehaviour

{

public string filename = "My Resource";

private string BundleURL;

private string AssetName;

void Start()

{

//StartCoroutine(loadScenee());

StartCoroutine(LoadResource());

}

IEnumerator loadScenee()

{

string path;

path = "file://" + Application.dataPath + "/" + filename + ".unity3d";

Debug.Log(path);

WWW www = new WWW(path);

yield return www;

AssetBundle bundle = www.assetBundle;

//GameObject go = bundle.Load("gCube",typeof(GameObject)) as GameObject;

GameObject ObjScene = Instantiate(www.assetBundle.mainAsset) as GameObject;

bundle.Unload(false);

}

IEnumerator LoadResource()

{

BundleURL = "file://" + Application.dataPath + "/" + filename + ".unity3d";

Debug.Log("path:" + BundleURL);

WWW m_Download = new WWW(BundleURL);

yield return m_Download;

if (m_Download.error != null)

{

//  Debug.LogError(m_Download.error);

Debug.LogError("Warning errow: " + "NewScene");

yield break;

}

TextAsset txt = m_Download.assetBundle.Load(filename, typeof(TextAsset)) as TextAsset;

byte[] data = txt.bytes;

byte[] decryptedData = Decryption(data);

Debug.Log("decryptedData length:" + decryptedData.Length);

StartCoroutine(LoadBundle(decryptedData));

}

IEnumerator LoadBundle(byte[] decryptedData)

{

AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(decryptedData);

yield return acr;

AssetBundle bundle = acr.assetBundle;

GameObject obj =  (GameObject)Instantiate(bundle.mainAsset);

//obj.SetActive (true);

}

byte[] Decryption(byte[] data)

{

byte[] tmp = new byte[data.Length];

for (int i = 0; i < data.Length; i++)

{

tmp[i] = data[i];

}

//  shanghaichaolan

string password ="llh";

packXor(tmp,tmp.Length,password);

return tmp;

}

static void packXor(byte[] _data, int _len, string _pstr)

{

int length = _len;

int strCount = 0;

for (int i = 0; i < length; ++i)

{

if (strCount >= _pstr.Length)

strCount = 0;

_data[i] ^= (byte)_pstr[strCount++];

}

}

void update()

{

}

}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享題目:unity3d資源打包加密-創(chuàng)新互聯(lián)
網頁URL:http://chinadenli.net/article30/eodso.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號品牌網站設計網站策劃網站營銷品牌網站制作搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名