更多教程请访问:

http://dingxiaowei.cn/

写一写今天的学习心得,保持每天不断的学习,今天写的是人物的换装的技术实现。

人物的换装是游戏开发的一个基本的技术,初来公司,老板就要我学习一下人物换装,也当是给我练练手吧,然后我接到一个需求之后,就要开始学习和搜集资料来实现这一功能,一下是学习心得,接下来我们就一起来学习一下,仅仅供新手参考。

首先 我们将从美工那儿获取到的人物模型资源加载到本地,然后通过写代码挂载到人物模型上面。以下是挂在在模型上面的js代码,也就是换装的脚本:

var ME1 : Mesh;    //网格
var MA1 : Material;   //材质
private var TK = 0;
var ME2 : Mesh;
var MA2 : Material;
private var WQ = 0;
var ME3 : Mesh;
var MA3 : Material;
private var ZJ = 0;
var ME4 : Mesh;
var MA4 : Material;
private var YJ = 0;   function OnGUI()
{  GUILayout.Label("");  if(GUILayout.Button ("Helm头盔"))   {  if(TK == 1)  {  transform.Find("group2").Find("Object02").GetComponent(MeshFilter).mesh = null;  transform.Find("group2").Find("Object02").renderer.material = null;  TK = 0;  }  else  {  transform.Find("group2").Find("Object02").GetComponent(MeshFilter).mesh = ME1;  transform.Find("group2").Find("Object02").renderer.material = MA1;  TK = 1;  }  }  if(GUILayout.Button ("Weapon武器"))   {  if(WQ == 1)  {  transform.Find("group2").Find("polySurface1").GetComponent(MeshFilter).mesh = null;  transform.Find("group2").Find("polySurface1").renderer.material = null;  WQ = 0;  }  else  {  transform.Find("group2").Find("polySurface1").GetComponent(MeshFilter).mesh = ME2;  transform.Find("group2").Find("polySurface1").renderer.material = MA2;  WQ = 1;  }  }  if(GUILayout.Button ("LCollar左肩"))  {  if(ZJ == 1)  {  transform.Find("group2").Find("polySurface3").GetComponent(MeshFilter).mesh = null;  transform.Find("group2").Find("polySurface3").renderer.material = null;  ZJ = 0;  }  else  {  transform.Find("group2").Find("polySurface3").GetComponent(MeshFilter).mesh = ME3;  transform.Find("group2").Find("polySurface3").renderer.material = MA3;  ZJ = 1;  }  }  if(GUILayout.Button ("RCollar右肩"))  {  if(YJ == 1)  {  transform.Find("group2").Find("polySurface4").GetComponent(MeshFilter).mesh = null;  transform.Find("group2").Find("polySurface4").renderer.material = null;  YJ = 0;  }  else  {  transform.Find("group2").Find("polySurface4").GetComponent(MeshFilter).mesh = ME4;  transform.Find("group2").Find("polySurface4").renderer.material = MA4;  YJ = 1;  }  }
}  

这里要换装主要是游戏里面的Mesh和Materials,可以我们从属性菜单中直接给这个赋值,可行方便的一个策略是将所有的模型资源写在一个数组中,然后通过数组的索引获取到对应的贴图就OK了。

帧数值的js代码,这段是挂在在摄像机上的:

var updateInterval = 0.5;
private var lastInterval : double; // Last interval end time
private var frames = 0; // Frames over current interval
private var fps : float; // Current FPS
private var sum = 0.0;
private var num = 0.0;function Start()
{lastInterval = Time.realtimeSinceStartup;frames = 0;
}function OnGUI ()
{GUILayout.Label("fps:" + fps.ToString("f0") + "      " + (sum/num).ToString("f0"));
}function Update()
{transform.RotateAround (Vector3.zero, Vector3.up, 100 * Time.deltaTime);++frames;var timeNow = Time.realtimeSinceStartup;if( timeNow > lastInterval + updateInterval ){fps = frames / (timeNow - lastInterval);frames = 0;lastInterval = timeNow;sum += fps;num++;}
}

程序截图:

转眼之间都快到凌晨一点半了,还是可以洗洗睡了!

转载请保留原链接:http://write.blog.csdn.net/postedit/14093409 谢谢!

附加:群号858550,里面有近2000号Unity的同胞们也有一些大牛们,欢迎进入进行技术交流或者学习!

源码下载:http://download.csdn.net/detail/s10141303/6494229

安卓下载:http://download.csdn.net/detail/s10141303/6507163

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013              MyQQ:1213250243

MyTel:13262983383

====================== 相互学习,共同进步 ===================

[Unity3D]人物模型的换装相关推荐

  1. Unity3D游戏开发之换装方法

    游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中一个部位换成另外一个形状,最直接的就是将该物件部位的 Mesh ...

  2. 【Unity3D】3D角色换装++ Advance

    1.如果角色只是单纯的更换装备 也就是说 角色的整个身体是一个完整的网格 而所需要更换的各个部件只是装备 而不是身体的某一部分 比如NGUI中Character的例子 穿装备之前 角色只有默认的身体 ...

  3. unity 3d换装之 SkinMeshRenderer

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

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

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

  5. 技巧| Unity中Avatar换装实现

    转自: http://blog.uwa4d.com/archives/avartar.html Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如 ...

  6. Unity中Avatar换装实现

    Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如何将这些部分组合到一起呢?本文将阐述如何将在Unity中实现人物模型的换装功能. 这是侑虎科技第 ...

  7. unity中Avatar换装实现(一)之美

    Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如何将这些部分组合到一起呢?本文将阐述如何将在Unity中实现人物模型的换装功能. 资源准备 1. ...

  8. Unity3D人物换装

    这个Demo主要是基于SkinnedMeshRenderer,对其中元素做修改达到改变模型外形与装饰的效果. //换贴图,直接把这段代码加在要换贴图的模型上即可; private var eyeind ...

  9. Unity3D换装详解

    游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中一个部位换成另外一个形状,最直接的就是将该物件部位的 Mesh ...

最新文章

  1. python输入转化为数字_Python中如何将输入数据转换为数字?
  2. Scala基础教程(二):数据类型、变量
  3. okhttp3下载文件检测进度与断点续传
  4. spring cloud bus AMQP学习笔记
  5. 从 6 万用户评论中,选出这 23 门全世界最好的 CS 免费课
  6. 【算法】剑指 Offer 48. 最长不含重复字符的子字符串
  7. [BZOJ2958]序列染色
  8. 云瓣影音网站微信端(已开源)
  9. 芯片测试需要掌握什么软件,芯片测试工程师岗位职责
  10. css 设置背景颜色失效?
  11. ECMAScript 面试题目
  12. 一个小工具就能帮我清理 30GB 微信文件,也太好用了!
  13. Python脚本把支付宝和微信账单数据转换成随手记APP的excel标准模板导入
  14. 表格的属性、表格的合并及表单
  15. php如何判断emoji字符串,PHP实现识别带emoji表情的字符串
  16. 深入浅出OpenGL三维渲染管线
  17. 算法设计7-数字迷问题
  18. linux用u盘拷文件损坏,复制到u盘的文件总是损坏怎么办解决?
  19. java时间转时间戳_java时间与时间戳互转
  20. 说一下zoom:1的原理,万一被问到呢?

热门文章

  1. linux sd卡启动盘制作工具,fedora liveusb creator linux u盘启动盘制作工具
  2. 一文读懂车联网关键技术
  3. Pandas+Pyecharts | 40000+条考研信息数据可视化(学校、专业分数分布)
  4. 微信小游戏开发之坦克大战(比羊了个羊还好玩系列)
  5. GAOKU-WMS智能仓储管理系统
  6. 初级前端高频面试题之VUE
  7. SSM框架——干净详细的整合学习教程(Spring+SpringMVC+MyBatis)
  8. Linux裸机开发|RGBLCD显示实验
  9. 基于机智云平台的STC15实验台控制系统设计
  10. 2019央视春晚主持人阵容公布:康辉、朱迅等在列