纳金网

标题: 官网角色换装资源导入报错解决方案 [打印本页]

作者: 王者再临    时间: 2014-8-29 02:27
标题: 官网角色换装资源导入报错解决方案
change : UpdateCharacterElementDatabase.cs

class UpdateCharacterElementDatabase
{
// This method collects information about all available
// CharacterElements stores it in the CharacterElementDatabase
// assetbundle. Which CharacterElements are available is
// determined by checking the generated materials.
[MenuItem("Character Generator/Update Character Element Database")]
public static void Execute()
{
List<CharacterElement> characterElements = new List<CharacterElement>();

// As a CharacterElement needs the name of the assetbundle
// that contains its assets, we go through all assetbundles
// to match them to the materials we find.
string[] assetbundles = Directory.GetFiles(CreateAssetbundles.AssetbundlePath);
string[] materials = Directory.GetFiles("Assets/CharacterCustomization/characters", "*.mat", SearchOption.AllDirectories);
foreach (string material in materials)
{
foreach (string bundle in assetbundles)
{
FileInfo bundleFI = new FileInfo(bundle);
FileInfo materialFI = new FileInfo(material);
string bundleName = bundleFI.Name.Replace(".assetbundle", "");
if (!materialFI.Name.StartsWith(bundleName)) continue;
if (!material.Contains("Per Texture Materials")) continue;
characterElements.Add(new CharacterElement(materialFI.Name.Replace(".mat", ""), bundleFI.Name));
break;
}
}

// After collecting all CharacterElements we store them in an
// assetbundle using a ScriptableObject.

// Create a ScriptableObject that contains the list of CharacterElements.
CharacterElementHolder t = ScriptableObject.CreateInstance<CharacterElementHolder> ();
t.content = characterElements;

// Save the ScriptableObject and load the resulting asset so it can
// be added to an assetbundle.
string p = "Assets/assetbundles/CharacterElementDatabase.asset";
AssetDatabase.CreateAsset(t, p);
Object o = AssetDatabase.LoadAssetAtPath(p, typeof(CharacterElementHolder));

// Build the CharacterElementDatabase assetbundle.
BuildPipeline.BuildAssetBundle(o, null, CreateAssetbundles.AssetbundlePath + "CharacterElementDatabase.assetbundle");

// Delete the ScriptableObject.
AssetDatabase.DeleteAsset(p);

Debug.Log("******* Updated Character Element Database, added " + characterElements.Count + " elements *******");
}
}

and in CharacterGenerator.cs


public static string AssetbundleBaseURL
{
get
{
if (Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.OSXWebPlayer)
return Application.dataPath+"/assetbundles/";
else
return "file://" + Application.dataPath + "/assetbundles/";
}
}

After that rebuild asset and update element database


作者: hyui    时间: 2014-8-29 04:08
Good to know !
作者: Kadina    时间: 2014-8-29 06:59
Thanks for sharing !
作者: cgjch8    时间: 2014-8-29 09:12
如何将外置动画模型导入Unity
作者: ku    时间: 2014-8-29 09:13
哪年的换装???
作者: mandonggua    时间: 2017-6-8 11:15

谢谢分享,




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5