Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡MVP ¥Ñ¥¿¡¼¥ó¤òºÎÍѤ·¤Æ¡¢¥²¡¼¥àÆâ¤Î UI À©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡º£²ó¤Ï¥×¥ì¥¤¥ä¡¼¤Î Hp ¤ÈÂÐÀïÁê¼ê¤Î Hp ¤Ë¤Ä¤¤¤ÆÀ©¸æ¤·¤Þ¤¹¡£
¤³¤ì°Ê³°¤ÎÉôʬ¤Ë¤Ä¤¤¤Æ¤â UI ¤Ç¤¢¤ì¤Ð MVP ¥Ñ¥¿¡¼¥ó¤ò³èÍѲÄǽ¤Ç¤¹¤Î¤Ç
³Ø½¬¸å¤Ë¤Ï¼«Ê¬¤ÇÀ߷פò¹Í¤¨¤Æ¼ÂÁõ¤Ë¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£



MVP ¥Ñ¥¿¡¼¥ó


¡¡¤³¤ì¤Ï UniRx ¤Î ReactiveProperty ¤òÍøÍѤ·¤¿¡¢¥ª¥Ö¥¶¡¼¥Ð¡¼¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤ÆºîÀ®¤·¤Æ¤¤¤ë¥Ñ¥¿¡¼¥ó¤Ç¤¹¡£

¡¡¡¡=>¡¡ReactiveProperty ¤ò³èÍѤ·¤¿ MVP ¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¼ÂÁõÎã


¡¡Â¾¤Ë¤â MVP ¥Ñ¥¿¡¼¥ó¤Ë¤Ä¤¤¤Æ¤Ïµ­»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤â¤´³Îǧ¤¯¤À¤µ¤¤¡£
Unity ¤Î¾ì¹ç¤Ë¤Ï MV(R)P ¥Ñ¥¿¡¼¥ó¤È¾Ò²ð¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¡¢Â¾¤Î¸À¸ì¤Ç¤Ï MVC ¥Ñ¥¿¡¼¥ó¤È¤·¤Æ¾Ò²ð¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£

¡¡¼ç¤Ë UI ¼þ¤ê¤òÀ©¸æ¤¹¤ë¤³¤È¤ËŬ¤·¤¿¥Ñ¥¿¡¼¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£



View ¥¯¥é¥¹¤ÎºîÀ®




BatttleUIView.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£




¤³¤Á¤é¤Ï View ¤ËʬÎव¤ì¤ë¡¢²èÌ̤Îɽ¼¨¤È¹¹¿·¤ò¹Ô¤¦¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹¡£
¤Þ¤º¡¢¥²¡¼¥à²èÌ̤˥ץ쥤¥ä¡¼ÍѤÈÂÐÀïÁê¼êÍѤΠUI ¤òÍÑ°Õ¤·¤Þ¤¹¡£
Text ¤¬¤¢¤ì¤Ð HP ¤Î¸½ºßÃͤò¹¹¿·¤Ç¤­¤Þ¤¹¡£Slider ¤âÍÑ°Õ¤¹¤ë¤³¤È¤Ç¡¢¥²¡¼¥¸¤â¹¹¿·¤Ç¤­¤Þ¤¹¡£
Hp ¤ÎºÇÂçÃͤϤ³¤³¤Ç¤ÏÀ©¸æ¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢É¬Íפ˱þ¤¸¤Æ¡¢ÊÌÅÓ Text ¤òÍÑ°Õ¤¹¤ë¤«¡¢£±¤Ä¤Î Text Æâ¤Ëɽ¼¨¤·¤Æ¤¯¤À¤µ¤¤¡£
¤½¤Î¸å¡¢¤¤¤º¤ì¤«¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë View ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¡¢Text ¤Ê¤É¤ò¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
½èÍý¤ÎÆâÍƤȤ·¤Æ¤Ï¡¢»öÁ°¤Ë ReactiveProperty ¤ÇºîÀ®¤¹¤ë Hp ¤Î¾ðÊó¤È¥á¥½¥Ã¥É¤òɳ¤Å¤±¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢
Hp ¤ÎÃͤ¬ÊÑÆ°¤¹¤ë¤¿¤Ó¤Ë¼«Æ°Åª¤Ë²èÌ̤ΠHp ¤ÎÃͤò¹¹¿·¤µ¤»¤ë»ÅÁȤߤǤ¹¡£Slider ¤âƱÍͤǤ¹¡£
¥×¥ì¥¤¥ä¡¼¤Ë¤Ä¤¤¤Æ¤ÏºÇ½é¤Ë1²ó¥»¥Ã¥È¤¹¤ì¤Ð¡¢Æ±¤¸ Hp ¤ò¹ØÆÉ(´Æ»ë)¤¹¤ë¤Î¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢
ÂÐÀïÁê¼ê¤Î¾ì¹ç¤Ï¡¢Hp ¤ÎÃͤò¥»¥Ã¥È¤·Ä¾¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
Ãͤι¹¿·ÊýË¡¤È¤·¤Æ¤Ï¡¢DOTween ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
DOCounter ¤Ç Hp Ãͤò¹¹¿·¤·¤Æ¤¤¤Þ¤¹¡£
DOValue ¤Ç Slider ¤Î¥²¡¼¥¸¤ò¹¹¿·¤·¤Æ¤¤¤Þ¤¹¡£
DOValue ¤Î°ú¿ô¤ä Ease ¤Ë¤Ä¤¤¤Æ¤ÏÊÑ¿ô¤òÍÑ°Õ¤·¤Þ¤·¤¿¡£DOCounter ¤â¶¦ÍѲ½¤·¤ÆÊÑ¿ô¤Ë¤·¤Æ¤â¤è¤¤¤Ç¤¹¤·¡¢
ÊÌÅÓ¡¢DOCounter ÍѤ˿·¤·¤¤¥á¥ó¥ÐÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤â¤¤¤¤¤È»×¤¤¤Þ¤¹¡£
¥½¡¼¥¹¥³¡¼¥ÉÆâ¤Ç¤Ï´ðËÜŪ¤Ë¤Ï¥ê¥Æ¥é¥ëɽµ­(ľÀÜ¿ô»ú¤ä¡¢Ê¸»úÎó¤ò½ñ¤¯¤³¤È)¤ÏÈò¤±¤Æ¡¢¤Ê¤ë¤Ù¤¯¡¢ÊÑ¿ô¤Ç½ñ¤¤¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£



Presenter ¥¯¥é¥¹¤ÎºîÀ®


¡¡Presenter Ìò¤Î¥¯¥é¥¹¤Ç¤¹¡£
º£²ó Model Ìò¤Ï GameData ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ì¤ò¤½¤Î¤Þ¤ÞÍøÍѤ·¤Þ¤¹¡£

BatttleUIPresenter.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£




SubscribePlayerHp ¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î Hp ¤Î UI ¤Ø¤Î½é´üÀßÄê¤È¹ØÆɽèÍý¤Ç¤¹¡£
Hp ¤ò¹ØÆɤ·¤Æ¡¢¤½¤ì¤ò View ¤ËÍÑ°Õ¤·¤Æ¤¤¤ë UpdatePlayerUp ¥á¥½¥Ã¥É¤Èɳ¤Å¤±¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢°ú¿ô¤Ë¤Ï GameData ¤Ë¤¢¤ë¡¢¥×¥ì¥¤¥ä¡¼ÍѤΠCharacter ¥¯¥é¥¹¤ò¤â¤é¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¤³¤Î SubscribePlayerHp ¥á¥½¥Ã¥É¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î Hp ¤òGameData Æâ¤Î ReactiveProperty ¤ËÀßÄꤷ¤¿¸å¤Ç¤¢¤ì¤Ð
¤É¤³¤Î¥¿¥¤¥ß¥ó¥°¤Ç¸Æ¤Ó½Ð¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£¤½¤¦¤¹¤ì¤Ð¡¢¥Ð¥È¥ë°Ê³°¤Î¾ì½ê¤Ç¤â Hp ¤ÎÁý¸º¤Ë¹ç¤ï¤»¤Æ UI ɽ¼¨¤¬¹¹¿·¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã½èÍý¤Î²òÀâ¡ä


£±¡¥GameData ¤Ç Character ¥¯¥é¥¹À¸À®¸å¡¢¤½¤Î¥¯¥é¥¹Æâ¤Ë¤¢¤ë ReactiveProperty ¤Î Hp ¤ËHp ¤ÎÃͤòÀßÄꤹ¤ë¡£
£²¡¥¡Ú£±¡Û½ªÎ»¸å¡¢¤É¤³¤«¤Î¥¿¥¤¥ß¥ó¥°¤Ç¡¢Presenter ¤Î SubscribePlayerHp ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡£
¡¡¡¡Presenter ¤â¤¤¤º¤ì¤«¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¡¡Create Empty ¤ÇºîÀ®¤·¤¿¤â¤Î¤ä¡¢BattleEventManager ¤Ê¤É¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ·¤Æ¤â¤¤¤¤¤È»×¤¤¤Þ¤¹¡£
¡¡¡¡¤¢¤È¤Ï¼Â¹Ô¤·¤¿¤¤¥¯¥é¥¹¤Ë¥á¥ó¥ÐÊÑ¿ô¤È¤·¤Æ»ý¤¿¤»¤ë¤Ê¤É¤·¤Æ¡¢¥á¥½¥Ã¥É¤¬¼Â¹Ô¤Ç¤­¤ë¾õÂÖ¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£
£³¡¥¥Ð¥È¥ë³«»Ï¤Î¥¿¥¤¥ß¥ó¥°¤Ç¡¢GameData ¤Î Opponent ÊÑ¿ôÆâ¤Ë¤¢¤ë ReactiveProperty ¤Î Hp ¤Ë¡¢Å¨¤ÎHp ¤ÎÃͤòÀßÄꤹ¤ë¡£
¡¡¤½¤Î¸å¡¢SubscribeOpponentHp ¤ò¼Â¹Ô¤¹¤ë¡£¤³¤ì¤Ç¡¢Å¨Â¦¤Î Hp ¤Ë¹ç¤ï¤»¤Æ²èÌ̤ΠUI ɽ¼¨¤¬¹¹¿·¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
£´¡¥¥Ð¥È¥ë½ªÎ»»þ¤Ë EndBattle ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¡¢ÂÐÀïÁê¼ê¤Î Hp ¤Î¹ØÆɤò½ªÎ»¤¹¤ë
¡¡¤³¤Î¤è¤¦¤ÊÀ߷פÇÆ°¤¤¤Æ¤¤¤Þ¤¹¡££±¤È£²¤Ï¥×¥ì¥¤¥ä¡¼Â¦¤Î½èÍý¤Ê¤Î¤Ç¡¢1²ó¤º¤Ä¹Ô¤¨¤Ð¤¢¤È¤ÏÉÔÍפǤ¹¡£
£³¤È£´¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥Ð¥È¥ë¤Î¤¿¤Ó¤Ë¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¹Í¤¨¤Æ¡¢¸Æ¤Ó½Ð¤¹¥¿¥¤¥ß¥ó¥°¤ÎÉôʬ¤Ë¼Â¹ÔÌ¿Îá¤ò½ñ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£



M => Model = GameData
V => View = BattleUIView
P => Presenter = BattleUIPresenter

º£²ó¤Î MVP ¥Ñ¥¿¡¼¥ó¤ËÍøÍѤ·¤Æ¤¤¤ë¥¯¥é¥¹¤Ç¤¹¡£
Ä̾ï¤Ï Presenter ¤¬¥á¥ó¥ÐÊÑ¿ô¤È¤·¤Æ Model ¤â´ÉÍý¤¹¤ë¤Î¤Ç¤¹¤¬¡¢
º£²ó¤Î Model ¤Ï GameData ¤Ç¡¢¤³¤ì¤¬¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤Î¤¿¤á¡¢¥á¥ó¥ÐÊÑ¿ô¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤»¤ó¡£(¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â¿¨¤ì¤ë¤Î¤Ç)


¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹