How do i Reduce my Scripts?

Hello Everyone,

I Need Some Advice to Reduce My Scripts, I need Shortcuts or Methods,

Some Examples From My Scripts:
(I am Using NGUI)
—1—

if(skills[1]=="0"){s1skill.isEnabled=false;NGUITools.SetActive(s1cooldown.gameObject,false);} else {skill1bool=true;s1skill.normalSprite=skills[1];}
		if(skills[2]=="0"){s3skill.isEnabled=false;NGUITools.SetActive(s2cooldown.gameObject,false);} else {skill2bool=true;s2skill.normalSprite=skills[2];}
		if(skills[3]=="0"){s3skill.isEnabled=false;NGUITools.SetActive(s3cooldown.gameObject,false);} else {skill3bool=true;s3skill.normalSprite=skills[3];}
		if(skills[4]=="0"){s4skill.isEnabled=false;NGUITools.SetActive(s4cooldown.gameObject,false);} else {skill4bool=true;s4skill.normalSprite=skills[4];}
		if(skills[5]=="0"){s5skill.isEnabled=false;NGUITools.SetActive(s5cooldown.gameObject,false);} else {skill5bool=true;s5skill.normalSprite=skills[5];}

		s1cooldowntime = setCooldown(skills[1]);
		s2cooldowntime = setCooldown(skills[2]);
		s3cooldowntime = setCooldown(skills[3]);
		s4cooldowntime = setCooldown(skills[4]);
		s5cooldowntime = setCooldown(skills[5]);

—2—

if (!heroAnimator.GetCurrentAnimatorStateInfo (0).IsName("Base")) {
				
				if(heroAnimator.GetCurrentAnimatorStateInfo (0).IsName("1")) {
					if(heroAnimator.GetCurrentAnimatorStateInfo (0).normalizedTime>=0.5f&&!effect1.activeInHierarchy)
					{	bossScript.hit();
						currentDamage=damageMultiplier*5;
						if(!gameFinished)damageToBoss(effect1);
					}
					if(heroAnimator.GetCurrentAnimatorStateInfo (0).normalizedTime>=0.7f&&!effect2.activeInHierarchy)
					{	bossScript.hit();
						currentDamage=damageMultiplier*10;
						if(!gameFinished)damageToBoss(effect2);
					}
				}
			}

—3—

if(stats[5]<3){skilbutton3.isEnabled=false;}
		if(stats[5]<4){skilbutton4.isEnabled=false;}
		if(stats[5]<5){skilbutton5.isEnabled=false;}
		if(stats[5]<6){skilbutton6.isEnabled=false;}
		if(stats[5]<7){skilbutton7.isEnabled=false;}
		if(stats[5]<8){skilbutton8.isEnabled=false;}
		if(stats[5]<9){skilbutton9.isEnabled=false;}
		if(stats[5]<10){skilbutton10.isEnabled=false;}
		if(stats[5]<11){skilbutton11.isEnabled=false;}
		if(stats[5]<12){skilbutton12.isEnabled=false;}
		if(stats[5]<13){skilbutton13.isEnabled=false;}
		if(stats[5]<14){skilbutton14.isEnabled=false;}
		if(stats[5]<15){skilbutton15.isEnabled=false;}
		if(stats[5]<16){skilbutton16.isEnabled=false;}
		if(stats[5]<17){skilbutton17.isEnabled=false;}
		if(stats[5]<18){skilbutton18.isEnabled=false;}
		if(stats[5]<19){skilbutton19.isEnabled=false;}

—4—

switch(stats[5]){
		case 2: skillLock.transform.position=skilbutton3.transform.position;break;
		case 3: skillLock.transform.position=skilbutton4.transform.position;break;
		case 4: skillLock.transform.position=skilbutton5.transform.position;break;
		case 5: skillLock.transform.position=skilbutton6.transform.position;break;
		case 6: skillLock.transform.position=skilbutton7.transform.position;break;
		case 7: skillLock.transform.position=skilbutton8.transform.position;break;
		case 8: skillLock.transform.position=skilbutton9.transform.position;break;
		case 9: skillLock.transform.position=skilbutton10.transform.position;break;
		case 10: skillLock.transform.position=skilbutton11.transform.position;break;
		case 11: skillLock.transform.position=skilbutton12.transform.position;break;
		case 12: skillLock.transform.position=skilbutton13.transform.position;break;
		case 13: skillLock.transform.position=skilbutton14.transform.position;break;
		case 14: skillLock.transform.position=skilbutton15.transform.position;break;
		case 15: skillLock.transform.position=skilbutton16.transform.position;break;
		case 16: skillLock.transform.position=skilbutton17.transform.position;break;
		case 17: skillLock.transform.position=skilbutton18.transform.position;break;
		case 18: skillLock.transform.position=skilbutton19.transform.position;break;
		case 19: NGUITools.SetActive(skillLock.gameObject,false);NGUITools.SetActive(lockLabel.gameObject,false);break;

—5—

if(platform1.normalSprite=="0"){currentSkill=1;}
		else{
			if(platform2.normalSprite=="0")currentSkill=2;
			else{
				if(platform3.normalSprite=="0")currentSkill=3;
				else{
					if(platform4.normalSprite=="0")currentSkill=4;
					else{
						if(platform5.normalSprite=="0")currentSkill=5;
						else currentSkill=6;
					}
				}
			}
		}

Thank You.

1 Answer

1

You need to explore the use of arrays. In particular, your skillbuttons should be in an array. And you may want to redo the mapping a bit. If they were in an array (and mapped one-to-one), then all 17 lines of the code you labeled as number 3 could be reduced to this single line:

 skilbutton[stats[5]].isEnabled=false;

And 17 lines of the code you labeled number 4 could become this one line:

 skillLock.transform.position=skilbutton[stats[5]].transform.position;

And with an array, number 1 could be done in a simple for() loop. And probably number 5 as well.

Loops using for or foreach should also be considered

–

thank you, the answer i m looking for is "for loop" and "arrays", i coded all scripts from stratch, and it is great for now, thank you very much

–