为了提高游戏性能,需要对人物进行换装后,讲人物各个部分再进行组合,形成一个整体的网格,所以需要合并网格,骨骼,材质等。

下面是从Resources中加载人物各个部分,然后再组装。

首先加载的骨骼,再加载其他部分。

    void LoadResource(){GameObject go = Resources.Load<GameObject>("Female_bone");GameObject bone = (GameObject)Instantiate(go);boneChildren = bone.GetComponentsInChildren<Transform>();List<Material> mats = new List<Material>();List<Transform> bones = new List<Transform>();List<CombineInstance> cis = new List<CombineInstance>();AddPart("Female_top-1", bones, mats, cis, bone.transform);AddPart("Female_pants-1", bones, mats, cis, bone.transform);AddPart("Female_face-1", bones, mats, cis, bone.transform);AddPart("Female_hair-1", bones, mats, cis, bone.transform);AddPart("Female_shoes-1", bones, mats, cis, bone.transform);AddPart("Female_eyes", bones, mats, cis, bone.transform);SkinnedMeshRenderer smr = bone.GetComponent<SkinnedMeshRenderer>();smr.sharedMesh = new Mesh();smr.sharedMesh.CombineMeshes(cis.ToArray(), false, false);smr.bones = bones.ToArray();smr.sharedMaterials = mats.ToArray();}void AddPart(string partname, List<Transform> bones, List<Material> mats, List<CombineInstance> cis, Transform bone){GameObject go = Resources.Load<GameObject>(partname);go = (GameObject)Instantiate(go);SkinnedMeshRenderer smr = go.GetComponent<SkinnedMeshRenderer>();foreach (Transform child in smr.bones){bones.Add(FindChildByName(child.name));}smr.material.mainTexture = tex[mats.Count];mats.Add(smr.material);for (int sub = 0; sub < smr.sharedMesh.subMeshCount; sub++){CombineInstance ci = new CombineInstance();ci.mesh = smr.sharedMesh;ci.subMeshIndex = sub;cis.Add(ci);}DestroyImmediate(go);}private Transform FindChildByName(string name){foreach (Transform child in boneChildren){if (child.name == name){return child;}}return null;}

Unity换装之合并网格相关推荐

  1. Unity 换装方式

    unity换装方式一般分为三种,第一种是:直接更换物体的prefb,第二种:更换Material,第三种:更改mesh,再合并网格,做到与骨骼绑定 第一种:换模型 第二种:更换材质或者贴图 第一第二方 ...

  2. unity换装骨骼、蒙皮、动作之美

    无论是AAA级的主机游戏,还是层出不穷的移动端游戏,角色换装几乎都是必不可少的功能,有的甚至是核心功能,像暗黑3和魔兽世界的幻化系统(如图1).这个功能没什么新鲜点.网上关于Unity换装的文章不胜枚 ...

  3. unity教程:unity中是如何实现游戏人物换装的

    现在的游戏,如果没有换装功能的话,可能会让人觉得非常以外:这个游戏连换装都没有?还能玩吗?真的,不知道大家有没有注意过,貌似绝大部分的游戏都设计到换装.比如热门的网络游戏LOL,DNF这些,LOL里面 ...

  4. 浅谈角色换装功能--前置篇【骨骼,蒙皮,动作】

    无论是AAA级的主机游戏,还是层出不穷的移动端游戏,角色换装几乎都是必不可少的功能,有的甚至是核心功能,像暗黑3和魔兽世界的幻化系统(如图1).这个功能没什么新鲜点.网上关于Unity换装的文章不胜枚 ...

  5. unity 3d换装之 SkinMeshRenderer

    http://www.cnblogs.com/shamoyuu/p/6505561.html 关注公众号 风色年代(itfantasycc) 200G Unity资料合集送上~ 一.换装原理 游戏角色 ...

  6. Unity之SkinMeshRenderer带骨骼的人体模型换装

    Unity之SkinMeshRenderer带骨骼的人体模型换装 SkinMeshRenderer系统 条件 换装解决方案 第一种解决方案 第二种解决方案 方案选择 代码 效果 参考链接 SkinMe ...

  7. unity 3d模型换装的实现与相关注意点

    1 做好裸模,绑好骨骼,k好动作. 2 做出模型需要更换的装备,刷好权重.每个部位需要拆分成单独的模型.比如衣服,鞋子,裤子等. 3 导出裸模与装备模型到unity,每种模型都需要包含骨骼,因为换装依 ...

  8. unity之游戏角色换装实现

    http://www.cnblogs.com/shamoyuu/p/6505561.html 一.换装原理 游戏角色换装分为以下几步: 1.替换蒙皮网格 2.刷新骨骼 3.替换材质 上面这种是比较简单 ...

  9. Unity简易实现人物换装功能

    人物换装是动作类游戏必不可少的一个功能,本篇就介绍一个简易的换装功能,如要换装,人物身体肯定会拆分成几个部分,如头部,武器,身体等,每个部分都有一个SkinnedMeshRenderer组件,这个组件 ...

最新文章

  1. Powercli批量删除快照
  2. PHP自动加载类和方法,在PHP中自动加载类的最佳方法
  3. 02day-webpack
  4. 动态规划--用最少的硬币类别找零钱
  5. 电脑字体模糊_2020年初电脑配件和配置单推荐!
  6. python教程:闭包函数
  7. 关于函数在C语言和Python语言中的表示
  8. SAP Commerce Cloud,通过 ycommercewebservices OCC APIs 进行结账的一个技术限制
  9. MarkDown中的表格在jekyll的pages博客中不能正常显示
  10. vscode有趣插件
  11. zigbee 4:协调器/路由器/终端 建立/加入 网络
  12. Python股票量化学习(3)——简单的策略回测
  13. 去除黄褐斑的方法,姬净美怎么样
  14. BCM wifi分析
  15. 51单片机定时器/计数器
  16. mysql workbench中PK,NN,UQ,BIN,UN,ZF,AI字段类型标识说明
  17. 2019广东工业智造创新大赛【赛场二】感谢拼命的自己
  18. Unity 获取设备信息
  19. iOS 地图导航路线规划详解
  20. Pro Tools 2018.x版本安装/升级需知

热门文章

  1. 跑通、ILRuntime,全程傻瓜式指导。
  2. ios 借贷类app,贷款超市类app,如何以最快的时间一次性通过审核,下面一一为你解答
  3. C++调用OpenCV实现图像平滑处理
  4. 微信小程序添加视频video组件
  5. (4.2.47.1)HttpCore手机服务器
  6. NotificationManager滑动不退出_切记,iPhone 不要滑动关后台 !
  7. 装错信封输出所有结果C语言算法,装错信封
  8. Git服务器所有项目代码迁移,Gitlab代码工程迁移
  9. UDP/TCP报文格式
  10. storyline发布方法_【微课制作】互动式微课怎么搞?Storyline给你“四大招”