【Unity NGUI】学习笔记(一):英雄选择,皮肤更换
ngui,unity,英雄皮肤更换,Atlas,boxCollider2016-07-26
所需图片资源,包括英雄预制件,人物头像,服装,武器图集和人物动画
1.创建图集,选择NGUI->Open->Atlas Maker,设置图集名称heroAtlas后,选中Textures下的所有图片,点击Create
2.将四个英雄的预制件拖入到Scene中并重新命名为hero0~hero3
3.创建NGUI panel,分别是英雄列表,英雄招式,英雄装备
操作完以上三个步骤后,结构如下:
1.选中英雄列表,添加一个Sprite,使用图集中的图片mun_pnl_mon,然后依次将英雄头像摆放上去,再给头像添加box Collider和UIbutton。后面的英雄招式和装备操作基本上都是这样的。效果如下:
2.给头像添加点击事件,这里需要创建一个C#脚本,然后添加一个方法OnClick()来控制当前选择的英雄
//1.禁用所有英雄 for(int i=0;i<mHeros.Length;i++) { mHeros[i].SetActive (false); } //显示选择的英雄 mHeros[hIndex[1]-48].SetActive(true); curHero = mHeros [hIndex [1] - 48];
3.创建一个Empty命名为script,将第二步添加的脚本绑定到它身上。
4.设置英雄头像绑定On Click事件
using UnityEngine; using System.Collections; public class HeroSelect : MonoBehaviour { public GameObject[] mHeros; public Texture[] mCloths1; public static GameObject curHero; void Start() { curHero = mHeros[0]; } public void OnClick(string hIndex) { //1.禁用所有英雄 for(int i=0;i<mHeros.Length;i++) { mHeros[i].SetActive (false); } //显示选择的英雄 mHeros[hIndex[1]-48].SetActive(true); curHero = mHeros [hIndex [1] - 48]; } public void HeroCloth(string cIndex) { int index = cIndex[1] - 48; SkinnedMeshRenderer render = curHero.GetComponentInChildren<SkinnedMeshRenderer>(); switch(curHero.name) { case "hero0": render.material.mainTexture=mCloths1[index]; break; } } }