[Unity3D]人物模型的换装
更多教程请访问:
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]人物模型的换装相关推荐
- Unity3D游戏开发之换装方法
游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中一个部位换成另外一个形状,最直接的就是将该物件部位的 Mesh ...
- 【Unity3D】3D角色换装++ Advance
1.如果角色只是单纯的更换装备 也就是说 角色的整个身体是一个完整的网格 而所需要更换的各个部件只是装备 而不是身体的某一部分 比如NGUI中Character的例子 穿装备之前 角色只有默认的身体 ...
- unity 3d换装之 SkinMeshRenderer
http://www.cnblogs.com/shamoyuu/p/6505561.html 关注公众号 风色年代(itfantasycc) 200G Unity资料合集送上~ 一.换装原理 游戏角色 ...
- unity之游戏角色换装实现
http://www.cnblogs.com/shamoyuu/p/6505561.html 一.换装原理 游戏角色换装分为以下几步: 1.替换蒙皮网格 2.刷新骨骼 3.替换材质 上面这种是比较简单 ...
- 技巧| Unity中Avatar换装实现
转自: http://blog.uwa4d.com/archives/avartar.html Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如 ...
- Unity中Avatar换装实现
Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如何将这些部分组合到一起呢?本文将阐述如何将在Unity中实现人物模型的换装功能. 这是侑虎科技第 ...
- unity中Avatar换装实现(一)之美
Avatar换装是MMO游戏不可缺少的一部分,一个人物模型通常可拆分为头.身体.手臂.腿.武器等部分,如何将这些部分组合到一起呢?本文将阐述如何将在Unity中实现人物模型的换装功能. 资源准备 1. ...
- Unity3D人物换装
这个Demo主要是基于SkinnedMeshRenderer,对其中元素做修改达到改变模型外形与装饰的效果. //换贴图,直接把这段代码加在要换贴图的模型上即可; private var eyeind ...
- Unity3D换装详解
游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中一个部位换成另外一个形状,最直接的就是将该物件部位的 Mesh ...
最新文章
- python输入转化为数字_Python中如何将输入数据转换为数字?
- Scala基础教程(二):数据类型、变量
- okhttp3下载文件检测进度与断点续传
- spring cloud bus AMQP学习笔记
- 从 6 万用户评论中,选出这 23 门全世界最好的 CS 免费课
- 【算法】剑指 Offer 48. 最长不含重复字符的子字符串
- [BZOJ2958]序列染色
- 云瓣影音网站微信端(已开源)
- 芯片测试需要掌握什么软件,芯片测试工程师岗位职责
- css 设置背景颜色失效?
- ECMAScript 面试题目
- 一个小工具就能帮我清理 30GB 微信文件,也太好用了!
- Python脚本把支付宝和微信账单数据转换成随手记APP的excel标准模板导入
- 表格的属性、表格的合并及表单
- php如何判断emoji字符串,PHP实现识别带emoji表情的字符串
- 深入浅出OpenGL三维渲染管线
- 算法设计7-数字迷问题
- linux用u盘拷文件损坏,复制到u盘的文件总是损坏怎么办解决?
- java时间转时间戳_java时间与时间戳互转
- 说一下zoom:1的原理,万一被问到呢?
热门文章
- linux sd卡启动盘制作工具,fedora liveusb creator linux u盘启动盘制作工具
- 一文读懂车联网关键技术
- Pandas+Pyecharts | 40000+条考研信息数据可视化(学校、专业分数分布)
- 微信小游戏开发之坦克大战(比羊了个羊还好玩系列)
- GAOKU-WMS智能仓储管理系统
- 初级前端高频面试题之VUE
- SSM框架——干净详细的整合学习教程(Spring+SpringMVC+MyBatis)
- Linux裸机开发|RGBLCD显示实验
- 基于机智云平台的STC15实验台控制系统设计
- 2019央视春晚主持人阵容公布:康辉、朱迅等在列