ååã¯ã¢ã€ãã ã1ã€äœæãããEnemyïŒããåãããšãã« 1/2 ã®ç¢ºçã§ã¢ã€ãã ãåºçŸãããåããããã«ãã®ã¢ã€ãã ãååŸããéã«ãHPã1ã ãå埩ããåããäœæããããšãã§ããŸããã
ä»åã¯ãã®åããæ¹è¯ããŠãããŸããä»åè¡ãããšã¯æ¬¡ã®2ã€ã
ïŒïŒã¢ã€ãã ã®è¿œå ããã°ã©ã
ïŒïŒå¹æã®æ¯ãåããšã¢ã€ãã AïŒHPå埩ïŒãååŸãããšãã®ã¹ã¯ãªããæã®æ¹ä¿®
ããã§ã¯æ©éäœã£ãŠãããŸãããã
ïŒãã¢ã€ãã ã®è¿œå
ãã®äœåã§ã¯6çš®é¡ã®ã¢ã€ãã ãšããã®å¹æãäœã£ãŠãããŸãã
ããã«ããããã®ã¢ã€ãã ã®åºçŸç¢ºçãä»®èšå®ããŠãããŸãã
AãHPå埩ãïŒã30%
BãæŠåšåŒ·åãïŒã20ïŒ
Cãé²åŸ¡ïŒã·ãŒã«ãçºçïŒãïŒã20ïŒ
Dãã¹ããŒãã¢ãã ãïŒã15ïŒ
Eãå šå埩ïŒ10ç§éç¡æµãïŒã10ïŒ
Fãã¶ã³ãã£ã©ã®äžæç Žå£ãïŒã5ïŒ
ãItemManager.csããç«ã¡äžããŠã以äžã®ã³ãŒããè¿œèšããŠãããŸãã
â¶ãSpriteRendererã³ã³ããŒãã³ãã䜿ãããã®å€æ°ã宣èšããŸãã
â·ãã¢ã€ãã ã®ç»åã¯é åã§æå®ããŸããç»åãå ¥ããããã®é åã宣èšããŸãããã®ç»åã¯åŸã«Inspectorããæå®ããã®ã§ãã¢ã¯ã»ã¹ä¿®é£Ÿåããpublicãã«ããŠãããŸãããã
âžãâ¶ã§å®£èšããå€æ°ã«SpriteRendererã³ã³ããŒãã³ãããããŒã¿ãååŸãä»£å ¥
â¹ãåºçŸãããã¢ã€ãã ãæœéžçªå·ã0ïœ99ãŸã§ã®ä¹±æ°ã§ååŸããŸãã
ããåºçŸç¢ºçãããããããããã«100éãã®æ°åãçšæããŠããŸãã
âºãâ¹ã§æå®ããã¢ã€ãã ã30æªæºãã€ãŸã 30/100 ã®ç¢ºçãšããããšã«ãªããŸãã
â»ãâ·ã§æå®ããé åã®0çªç®ã®ç»åããSpriteRendererã³ã³ããŒãã³ãã®ãspriteããã€ãŸãèŠãç®ã®ç»åãšããŠæå®ããŸãã
ããšã¯âºâ»ã®ç¹°ãè¿ãã§ãã®ã§ãçç¥ããŸãã
SpriteRenderer itemRenderer; //â¶SpriteRendereråã®å€æ°ã宣èš
public Sprite[] sprites; //â·ã¢ã€ãã ç»åãå
¥ããé
åã宣èš
void Start()
{
itemRd2d = GetComponent<Rigidbody2D>(); //èšè¿°æžã¿
itemRenderer = GetComponent<SpriteRenderer>(); //âžå€æ°ããŒã¿ãååŸ
int item = Random.Range(0, 100); //â¹Itemãä¹±æ°ã§æ±ºå®
if (item < 30) //âºä¹±æ°ã30æªæºãªã
{
itemRenderer.sprite = sprites[0]; //â»0çªç®ã®ç»åãæå®
}
else if (item < 50)
{
itemRenderer.sprite = sprites[1];
}
else if (item < 70)
{
itemRenderer.sprite = sprites[2];
}
else if (item < 85)
{
itemRenderer.sprite = sprites[3];
}
else if (item < 95)
{
itemRenderer.sprite = sprites[4];
}
else
{
itemRenderer.sprite = sprites[5];
}
}
ç¶ããŠUnityãšãã£ã¿åŽããç»åãã»ããããŠãããŸãããã
â ååååŸããç»åãããã¢ã€ãã ã®å¹æïŒAïœFïŒã«åãçŽ æãéžã³ãååããItemAãïœãItemFãã«å€æŽããŸãã
å€æŽããªããŠãé²ããããšã¯ã§ããŸãããããã°ã©ã ã§ååãããŒã«ããŠã¢ã€ãã ãå€å®ããã®ã§ãããããããããã«ååãæå®ããŠããŸãã
â¡Itemãã¬ããã®ã€ã³ã¹ãã¯ã¿ãŒãããItemManagerãéžæããŠãã¹ã¯ãªããæã®å€æ°ã§å®£èšããé åãSpritesãã®Size ã« 6 ãå ¥åããŸãã
ãããšã6ã€ã®ã¹ããŒã¹ãçŸããã®ã§ãäžããé ã«â ã§ååãã€ãããItemAãïœãItemFããã»ããããŸãã
ïŒãå¹æã®æ¯ãåããšHPå埩ã³ãŒãã®ä¿®æ£
ç¶ããŠããã¬ã€ã€ãŒã«äœæããã¢ã€ãã ãæ¯ãåããä»çµã¿ãäœã£ãŠãããŸãã
ãPlayerController.csããç«ã¡äžããŠã以äžã®ã³ãŒããè¿œèšããŸãããã
ãã§ã«èšè¿°æžã¿ã®äŸµå ¥å€å®ã®ã€ãã³ãé¢æ°ã
OnTriggerEnter2D()ãã®ã
if (collision.tag == "Item")
ã€ãŸããã¢ã€ãã ãååŸããããã®éšåãä¿®æ£ããŸãã
ååã¯ä»¥äžã®ã³ãŒããèšè¿°ããŸããããDestroy()é¢æ°ä»¥å€ã¯äžæŠåé€ããŸãã
hp++; //åé€
HPText.text = "HP:" + hp.ToString(); //åé€
Destroy(collision.gameObject); //èšè¿°æžã¿
âŒäŸµå ¥ããçžæããSpriteRendererã³ã³ããŒãã³ããååŸããŠãsprite ãã©ã¡ãŒã¿ã® nameãã€ãŸãã¹ãã©ã€ãã®ååãååŸããã£ããstringåïŒæåååïŒã®å€æ°ãname ã«ä»£å ¥ããŸãã
âœãããããswichæããäœã£ãŠãããŸãã
ãswichæãã¯å®åæããifæããšäžŠãã§ãæ¡ä»¶åå²ã§ã¯ãã䜿ããããã®ãªã®ã§ãèŠããŠãããšäŸ¿å©ã§ãã
ä»å㯠âŒã§ååŸããå€æ°ãnameããããŒã«æ¯ãåããããŸãã
âŸname ã "ItemA" ã®ãšããšããããšã§ããã
âãSubHP()é¢æ°ã¯ããšããšHPãæžããããã«äœæããŠããŸããã
ãåŒæ°ã«ãã€ãã¹ã®å€ãæž¡ãããšã§ãHPãå¢ããããšãã§ããŸãã
ãããããããããã€ãã¹ãšãã©ã¹ãéã«ããŠããã°ããã£ãã§ããã
â«ã確èªã®ããã«Consoleã«è¡šç€ºãããŸããåŸã§æ¶ããŸã
â¬ãswichæãã®å®åæã§ããæåŸã¯ãbreakããå¿ èŠã«ãªããŸãã
void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Enemy") //èšè¿°æžã¿
{
SubHP(1);
}
if (collision.tag == "Item") //"Item"ã¿ã°ãæã£ãŠããã
{
string name = collision.GetComponent<SpriteRenderer>().sprite.name; //âŒItemã®ååãååŸ
switch (name) //âœãâŒã§ååŸããnameãããŒã«æ¯ãåã
{
case "ItemA": //âŸname ãItemA ã®å Žå
SubHP(-1); //â¿HPæžé¢æ°ãçºå
Debug.Log("HP 1UP"); //â«ãããã°ã§ç¢ºèª
break; //â¬å®åæ
case "ItemB":
Debug.Log("ãã¯ãŒã·ã§ãã");
break;
case "ItemC":
Debug.Log("ã·ãŒã«ã");
break;
case "ItemD":
Debug.Log("ã¹ããŒãã¢ãã");
break;
case "ItemE":
Debug.Log("å
šå埩");
break;
case "ItemF":
Debug.Log("ã¶ã³äžæ");
break;
}
//hp++; åé€
//HPText.text = "HP:" + hp.ToString(); åé€
Destroy(collision.gameObject); //èšè¿°æžã¿
}
}
ããã§ãæ¯ãåãã¯å®æã
åŸã¯ããããã®åãã1ã€ãã€ãè¿œå ããŠãããã°ããããã§ããã
ä»åã¯ãããŸã§ã«ããŠãããŸãã
æ宀ã§ã¯å®éã«éã£ãŠé ããŠã®ææ¥ã®ä»ãã¡ãã£ãšãããå°ãããšã«å¯Ÿãããªã³ã©ã€ã³ææ¥ããªã³ã©ã€ã³ãµããŒããè¡ã£ãŠãããŸãã
ãå°ãããšã®ããæ¹ããèå³ãããæ¹ã¯ããã²ãåãåãããã ããã
ãåãåããã¯ããã¡ããããã
äœéšææ¥ã®ãç³èŸŒã¿ã¯ããã¡ããããã
éå»ã®äœåã¯ãã¡ãããã
Vol.20ãŸã§ã®äœåã¯ãäžã®Vol.21 ææ«ã®ãªã³ã¯ããã©ãã