近期热门
粉丝908
关注 204
获赞 1005
Unity游戏换装

[U3D] Unity游戏换装

[复制链接]
4599 1 0 1 11年前 举报
开发环境
Window7
Unity3D3.4
MB525defy   Android 2.2.1

这次带来的是Unity游戏换装,这是羽化在公司完成的,想法很简单,只能说是一个引,要用在具体实践上还要做修改和写一个完善的脚本,代码依旧很简单,主要是讲讲制作思想。

本次学习:
1.人物换装研究
2. 换装脚本

1.   人物换装研究
从羽化进公司开始,第一个参与开发Android的一个2D仿DNF的游戏,虽然只是一个Demo但学习了很多游戏开发技巧,其中就有换装。虽然没有直接做2D换装,但从素材里面可以看出DNF的换装就是切换切片,人物动作都不会带上武器,因为后面武器可以自由切换,和人物保持一个动作,这个就有点像星球大战制作特效一样,演员只是挥动一个破棍子,而光剑是后期处理上去的。Unity里面并没用明确告诉我们如何换装,于是羽化就从导出的FBX入手,一个人物,想要运动就会有骨骼,装备其实是绑定在骨骼上的,这么简单的想法就完成了羽化这次的代码,虽然标题是换装,其实只是穿衣和脱衣。。。怕换成这标题太吸引眼球了- -,往下看。。。

2.   换装脚本
先送上脚本 换装.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,这里羽化把这两个数值写死了,在实际游戏中,所有装备应该是一个数组,从数组中抽取出来吧~ ~ 下面是实际截图。


项目地址:

原文链接:http://blog.csdn.net/libeifs/article/details/6751312

0
点赞
0
打赏
1
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论1
您需要登录后才可以回帖 登录

感謝分享這個專業的訊息!
8年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器