纳金网

标题: Unity3d角色换装原理简介 [打印本页]

作者: 晃晃    时间: 2011-9-5 08:07
标题: Unity3d角色换装原理简介
在换装前,我先讲讲WWW的相关事宜。
c#里用WWW去读取资源时,需要用到迭代器IEnumerator和 MonoBehaviour的StartCoroutine方法。

这是在MONO下开线程来读取资源的一种方法。

在读取资源前,我们必须先建立资源。这种资源建立的方法,需要用到Unity3d里EDIT的API,对指定资源进行打包处理。

if (BuildPipeline.BuildAssetBundle(o, null, pathd, BuildAssetBundleOptions.CollectDependencies))

{

Debug.Log("create assetBundle [" + pathd + "] BINGO!");

} else {

Debug.Log("create assetBundle [" + pathd + "] ERROR!!!");

}
最后,懂得以上启蒙知识后就可以对人物模型进行换装了。

对一个人物模型里的个别模块换装,可分为:

材质更换,

模型更换,

和骨架更换。

就像下面这段程序那样。

在得到人物SkinnedMeshRenderer后,

对它的模型进行更换,

对其骨架进行更换,

最后对其材质球进行更换。

如此而已。

此文虽不详尽,但可以帮住你理解在研究换装过程中的种种问题。我的时间不多,写此文,只为帮助大家从本质上理解人物换装原理。
SkinnedMeshRenderer r = root.GetComponent<SkinnedMeshRenderer>();

r.sharedMesh = new Mesh();

r.sharedMesh.CombineMeshes(combineInstances.ToArray(), false, false);

r.bones = bones.ToArray();

r.materials = materials.ToArray();
作者: Asen    时间: 2011-9-7 08:35
简单
作者: 菜刀吻电线    时间: 2012-1-20 23:24
今年过年不收礼,收礼只收你短信,祝福不分大小,只要真心我就要。条数越多我越高兴,手机越响我越开心,你可否提前把礼送,等礼等得我好心焦。

作者: 晃晃    时间: 2012-2-18 23:26
加精、加亮滴铁子,尤其要多丁页丁页

作者: 晃晃    时间: 2012-3-27 23:32
顶!学习了!阅!

作者: 晃晃    时间: 2012-4-14 23:25
佩服,好多阿 ,哈哈

作者: 菜刀吻电线    时间: 2012-5-14 23:19
谢谢楼主,真是太实用了

作者: C.R.CAN    时间: 2012-5-23 23:24
很经典,很实用,学习了!

作者: tc    时间: 2012-10-18 23:25
“再次路过……”我造一个-----特别路过

作者: tc    时间: 2013-2-19 23:31
“再次路过……”我造一个-----特别路过

作者: 晃晃    时间: 2013-2-24 23:29
先顶上去,偶要高亮加精鸟!





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