角色换装

来源:互联网 发布:mac word 导航栏 编辑:程序博客网 时间:2024/04/27 20:14

开发环境

Window7

Unity3D3.4

MB525defy   Android 2.2.1


       羽化的第九篇博客,这个新的一个月开始了,回家的倒计时在慢慢接近,心里很是激动~ ~ 最近在玩3DS的《小小太阳》,大神的续作质量很是出众,玩法基本和PS2版一致,就是操作方式改变很多,这类游戏更适合做触控吧,原来的四叶草全是才华出众的游戏制作人,但在利益社会也只能解散,不能再给玩家带来更多像大神一样独特风格的游戏,实在很可惜。还有就是3个小时就翻了的《Limbo》,关于结局网上貌似很多说法,羽化认为故事是男孩去地狱见死去的女孩,女孩最后挖的应该是自己的尸体,死于机械事故埋葬在下面。。。XBLA上的下载神作,物理引擎制作精良,解密也很有趣,推荐给所有人~ ~ 话说这个公司Mads Wibroe是自己写的游戏引擎,非常漂亮,最近听说他们为了提高效率已经开始使用Unity开发了,加上最近公布的《新仙剑奇侠传Online》也是Unity开发的游戏,Unity真是越来越火了~ ~

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

本次学习:

1.人物换装研究

2. 换装脚本


1.   人物换装研究

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

 

2.   换装脚本

       先送上脚本 换装.js

[javascript] view plaincopyprint?
  1. var ME1 : Mesh;  
  2. var MA1 : Material;   
  3. private var TK = 0;   
  4. var ME2 : Mesh;  
  5. var MA2 : Material;   
  6. private var WQ = 0;   
  7. var ME3 : Mesh;  
  8. var MA3 : Material;   
  9. private var ZJ = 0;   
  10. var ME4 : Mesh;  
  11. var MA4 : Material;   
  12. private var YJ = 0;   
  13.   
  14. function OnGUI()  
  15. {  
  16.     GUILayout.Label("");  
  17.     if(GUILayout.Button ("Helm头盔"))   
  18.     {  
  19.         if(TK == 1)  
  20.         {  
  21.             transform.Find("group2").Find("Object02").GetComponent(MeshFilter).mesh = null;  
  22.             transform.Find("group2").Find("Object02").renderer.material = null;  
  23.             TK = 0;  
  24.         }  
  25.         else  
  26.         {  
  27.             transform.Find("group2").Find("Object02").GetComponent(MeshFilter).mesh = ME1;  
  28.             transform.Find("group2").Find("Object02").renderer.material = MA1;  
  29.             TK = 1;  
  30.         }  
  31.     }  
  32.     if(GUILayout.Button ("Weapon武器"))   
  33.     {  
  34.         if(WQ == 1)  
  35.         {  
  36.             transform.Find("group2").Find("polySurface1").GetComponent(MeshFilter).mesh = null;  
  37.             transform.Find("group2").Find("polySurface1").renderer.material = null;  
  38.             WQ = 0;  
  39.         }  
  40.         else  
  41.         {  
  42.             transform.Find("group2").Find("polySurface1").GetComponent(MeshFilter).mesh = ME2;  
  43.             transform.Find("group2").Find("polySurface1").renderer.material = MA2;  
  44.             WQ = 1;  
  45.         }  
  46.     }  
  47.     if(GUILayout.Button ("LCollar左肩"))  
  48.     {  
  49.         if(ZJ == 1)  
  50.         {  
  51.             transform.Find("group2").Find("polySurface3").GetComponent(MeshFilter).mesh = null;  
  52.             transform.Find("group2").Find("polySurface3").renderer.material = null;  
  53.             ZJ = 0;  
  54.         }  
  55.         else  
  56.         {  
  57.             transform.Find("group2").Find("polySurface3").GetComponent(MeshFilter).mesh = ME3;  
  58.             transform.Find("group2").Find("polySurface3").renderer.material = MA3;  
  59.             ZJ = 1;  
  60.         }  
  61.     }  
  62.     if(GUILayout.Button ("RCollar右肩"))  
  63.     {  
  64.         if(YJ == 1)  
  65.         {  
  66.             transform.Find("group2").Find("polySurface4").GetComponent(MeshFilter).mesh = null;  
  67.             transform.Find("group2").Find("polySurface4").renderer.material = null;  
  68.             YJ = 0;  
  69.         }  
  70.         else  
  71.         {  
  72.             transform.Find("group2").Find("polySurface4").GetComponent(MeshFilter).mesh = ME4;  
  73.             transform.Find("group2").Find("polySurface4").renderer.material = MA4;  
  74.             YJ = 1;  
  75.         }  
  76.     }  
  77. }  

       目前游戏还没策划,所有命名和人物构建还没规划,大家就将就看下。这里的换装主要是换了游戏里面的Mesh和Materials,这里羽化把这两个数值写死了,在实际游戏中,所有装备应该是一个数组,从数组中抽取出来吧~ ~ 下面是实际截图。


项目地址:

http://download.csdn.net/source/3577610

原创粉丝点击