纳金网

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

作者: 狂风大尉    时间: 2014-5-22 07:03
标题: 角色换装原理简介
在换装前,我先讲讲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();

作者: Mr_X    时间: 2014-5-22 07:18
一大早就分享经验,楼主辛苦了,谢谢
作者: hyui    时间: 2014-5-22 08:10
Thank you for share with us your experience!
作者: wucnj    时间: 2014-5-22 08:53
感谢分享!!!
作者: wucnj    时间: 2014-5-22 21:36
感谢分享!!!
作者: mandonggua    时间: 2017-6-8 11:17

谢谢分享
作者: biblioma    时间: 2017-6-9 09:46
谢谢分享      




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