位置: 编程技术 - 正文

【Unity3D】3D角色换装++ Advance(unity3d人物模型)

编辑:rootadmin
1、如果角色只是单纯的更换装备 也就是说 角色的整个身体是一个完整的网&#; 而所需要更换的各个部件只是装备 而不是身体的某一部分 比如NGUI中Character的例子 穿装备之前 角色只有默认的身体 穿了装备以后 身体不变 只是在特    定的位置显示装备 如下图    穿装备以前穿装备以后      这样做的好处是实现起来很简单 就是在特定的骨骼下显示一个不含有蒙皮信息的装备模型   更换的时候去通知特定功能的代码去删掉或隐藏之前的 再显示新的即可  不好的地方是 1 实现不了身体部件的更换 当然这不一定是不足 要视游戏的设计本身而论      2 穿上装备 实际上就是多增加了一份模型 那么所需要渲染的面数会增加 drawcall也会增加  如果游戏中模型的面数以及drawcall控制的很好 并且不存在除角色以外的其他玩家换装的话 并且游戏本身设计时也不需要身体部件更换的话    那这样做应该会是个&#;得考虑的方案  2、大部分网络游戏都会选择将身体的各个部件拆开 各个部件由身体部分和装备部分共同组成一个完整的模型 因此更换部件其实也就是更换装备  unity实现就如同上文中所讲 代码可参考官方CharacterCustomization例子  在游戏中 关心的不仅是装备有没有更换 更关心更换的好不好 会不会留有隐患  官方的这个例子只是演示了换装的原理 但是打开profile的memory一栏 会看到在更换装备的时候 内存占用在不断的增加  这样无厘头的内存占用会带来严重的后果 尤其是网络游戏这种换装频率高的游戏方式 尤其对于移动平台的网络游戏 尤其对于移动平台的3d网络游戏  优化问题牵扯到内存优化 资源优化 渲染优化 代码优化等多方面 待后文中再逐一讨论  官方换装中的内存问题 是因为装备被替换掉以后 没有从内存中清除 不断的更换就会在内存中不断的累加  相关问题在unity圣殿中有文章详细解释    装备中除武器以外 其他的部分都可以用同一种方式去更换 当然武器也可以 同样要视游戏本身而论  如果游戏中在安全区需要武器背在背上 而在非安全区拿在手上 同时有角色的"亮出武器"这样的过度动作配合 那么一个角色身上装备两把武器绝对是不二之选一把在手上 一把在背上 控制其中之一显示即可那么在更换武器的时候则需要将这两把武器全部更新  如果只是一把武器 在不同的状态挂在不同的位置的话 那么unity实现中一个很好的办法就是单纯的把武器模型放到相应的骨骼下 成为该骨骼的sub node  身体各部件都需要能够支持动态的更换 按照官方的例子 实际上更换每一个部件 就等同于重新合并了一遍网&#; 只是这次合并是用新装备的模型和其他部件的模型  当然如果选择不合并网&#; 那么也就是说 每个装备的部件都有一个SkinnedMeshRenderer组件来与骨骼进行关联 等同于计算量会翻倍  合并网&#;的换装代码参考官方实例 不合并网&#;的换装核心代码如下 即从当前角色的骨骼中取到该模型所关联的骨骼 然后建立关联即可    1 public void Generate(GameObject root, int elemId)  2 {  3 if (root == null)   4 return;  5   6 // Return if current map doesnt contain this element  7 if (!elementDict.ContainsKey(elemId) || elementDict[elemId]  == null) return;  8   9 // Get element's SkinnedMeshRenderer component   SkinnedMeshRenderer elemSmr = elementDict[elemId].GetSkinnedMeshRenderer();   // To be sub-object   elemSmr.gameObject.transform.parent = root.transform;   // All bones in this root   Transform[]  bones = root.GetComponentsInChildrenTransform();   // All bones needed by element   ListTransform elemBones = new ListTransform();   // All bone name in this element   string[]  elemBoneNames = elementDict[elemId].GetBoneNames();      // Find matched bones in root   for (int i = 0; i elemBoneNames.Length; &#;&#;i)   {   for (int j = 0; j bones.Length; &#;&#;j)   {   if (string.Compare(bones[j].name, strBone) == 0)   {   elemBones.Add(bones[j]);   break;   }   }   }   elemSmr.bones = elemBones.ToArray();   elemSmr.updateWhenOffscreen = false;        

推荐整理分享【Unity3D】3D角色换装++ Advance(unity3d人物模型),希望有所帮助,仅作参考,欢迎阅读内容。

【Unity3D】3D角色换装++ Advance(unity3d人物模型)

文章相关热门搜索词:unity3d角色控制器怎么用,unity3d人物模型资源包下载,unity3d角色模型的导入与应用,unity3d角色模型的导入与应用,unity 3d人物,unity 3d人物,unity 3d场景2d角色,unity 3d人物,内容如对您有帮助,希望把文章链接给更多的朋友!

完美世界3D格斗手游[格斗宝贝]今日公测 狗刨学习网报道/经过近两年井喷式的发展,国内手游市场洗牌的信号愈加强烈。用户体验的提升,以及对产品核心品质的要求,促进了手游的精品化,

在UGUI中如何防止鼠标点穿UI 比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先

Metaio in Unity3d 教学--- 二. 创建自己的Application 本文转自明一AR开发者论坛本文目的是自己创建一个metaio应用,并以扫描图片为目标,即ImageTracking。第一步:创建一个新的Unity3d工程,导入metaio插件包

标签: unity3d人物模型

本文链接地址:https://www.jiuchutong.com/biancheng/382643.html 转载请保留说明!

上一篇:初尝2D骨骼动画编辑工具SPINE(骨骼动画spine)

下一篇:完美世界3D格斗手游[格斗宝贝]今日公测(完美世界3v3)

  • 一般纳税人转小规模最新政策2022
  • 租房抵扣个税计算公式
  • 投资收益转入资本公积
  • 上月计提工资下月要冲回吗冲会吗
  • 小企业遵循什么会计准则
  • 公司租房水电费如何入帐
  • 退去年的教育费附加
  • 职工福利费劳保用品
  • 企业外购消费品会计分录
  • etc开了充值发票还可以开消费发票么?
  • 补交注册资本的法律规定
  • 环境保护税即将施行 有哪些点需要关注?
  • 资本公积转增资本的条件
  • 个税生产经营所得B表在哪里
  • 餐饮业收入的会计分录及摘要
  • 金税盘减免税款可以抵扣销项税吗
  • 纳税调整需要调年度报表嘛
  • 工商年报网上申报时间2023年
  • 公司为什么每年都要招人
  • 路由器晚上关了,早上再开信号会好吗?
  • 制造企业成本计算模型有哪些类型
  • 支付第三方劳务派遣费用如何做账
  • 亏损销售怎么结转库存成本怎么计算
  • php ajax json
  • 收到现金股利会影响利润吗
  • 个人账户存储额是缴费总和
  • 工地扬尘检测仪防尘缸怎么安装
  • 增值税发票洗烂怎么办
  • 月末结转本年利润吗
  • Element UI - v-infinite-scroll无限滚动组件
  • 设备租赁费怎么入账
  • 装修公司开的劳务发票
  • 采购发票生成的会计凭证
  • 长期股权投资入账
  • 开票提示未安装控件
  • 人力资源公司代办
  • 首涂24套
  • 汉诺塔问题动画演示
  • 收益相关的政府补助账务处理
  • 加油的电子发票在哪里找
  • 票种核定啥意思
  • 非盈利组织接受劳务捐赠怎么入账
  • 债务重组损失计入什么科目2020
  • 企业税负是否包含增值税
  • 增值税免抵退税和免退税的区别有什么?
  • 直接人工成本包括管理人员开的工资吗
  • 房地产预交税金怎么算
  • 个体工商户记账报税教程
  • 开房租租赁发票怎么记账?
  • 企业出售投资性房地产应按照售价与账面价值
  • 计划成本法和实际成本法的适用范围
  • 年底未分配利润在贷方
  • sql server怎么创建表语句
  • mysql 5.7.18 winx64安装配置方法图文教程
  • mysql免安装版本
  • solaris重启服务器命令
  • 怎样让windows media player播放mkv文件
  • centos ssh permission denied
  • centos 安装svn
  • SPBBCSvc.exe - SPBBCSvc进程是什么文件 有什么作用
  • 如何知道自己的邮箱号
  • centos 7 dns
  • Win10年度升级版Redstone来了:更加个人化的计算体验
  • 史上最全的领域学说
  • 用python三角形
  • bat 批处理文件
  • 梦见擦窗户框
  • js 运算符
  • 基于python的聊天软件
  • python strip函数作用
  • python常用操作运算符
  • js取反运算符
  • unity游戏加密
  • android源码下载地址
  • 开票软件连接服务器失败什么原因
  • CA证书如何办理?
  • 一般纳税人注销公司需要查账吗
  • 纳税人被列入非正常户超过三个月的情况
  • 企业对税务局建议
  • 浙江医保怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设