【Unity NGUI】学习笔记(一):英雄选择,皮肤更换


  一、准备工作

  所需图片资源,包括英雄预制件,人物头像,服装,武器图集和人物动画

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];


注意:hIndex是一个string类型,它是英雄头像的名字依次为h0~h3,我使用了hIndex [1]获取它的Ascii值减去0的Ascii48 得到英雄索引值

  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;
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值