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

¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¡£

¼ê½ç£´¡¡¡¼¥×¥ì¥¤¥ä¡¼¤ÎºîÀ®¡¼
¡¡£¶¡¥Character ¥¯¥é¥¹¤òºîÀ®¤¹¤ë
¡¡£·¡¥GameData ¥¯¥é¥¹¤òºîÀ®¤¹¤ë



¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¡¦UniRx ¤Î¥¤¥ó¥Ý¡¼¥È
¡¡¡¦namespace ¤Îµ¡Ç½
¡¡¡¦MonoBehaviour ¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹
¡¡¡¦UniRx ¤Î³èÍÑ¡¡¡¼ReactiveProperty¡¼
¡¡¡¦¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹
¡¡¡¦¥é¥à¥À¼°¤òÍøÍѤ·¤¿¡¢Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤Î¾Êάµ­Ë¡



£¶¡¥Character ¥¯¥é¥¹¤òºîÀ®¤¹¤ë

£±¡¥Àß·×


¡¡¡¡¥×¥ì¥¤¥ä¡¼¤È¥¨¥Í¥ß¡¼¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹¡£
£±¤Ä¤Î¥¯¥é¥¹¤òξ¼Ô¤ËÍøÍѤ·¤Æ´ÉÍý¤·¤Þ¤¹¡£

¡¡¤³¤Î¥¯¥é¥¹¤Ë¤Ï MonoBehavour ¥¯¥é¥¹¤Ï·Ñ¾µ¤·¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ëɳ¤Å¤«¤Ê¤¤¥¯¥é¥¹¤òÍøÍѤ·¤¿¥¢¥×¥í¡¼¥ÁÊýË¡¤Ç¤ÎÀ߷פˤʤê¤Þ¤¹¡£


£²¡¥UniRx ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë


¡¡Unity ¤Î¥¢¥»¥Ã¥È¥¹¥È¥¢¤«¤é¥¤¥ó¥Ý¡¼¥È¤ª´ê¤¤¤·¤Þ¤¹¡£

UniRx - Reactive Extensions for Unity
https://assetstore.unity.com/packages/tools/integr...

¡¡¤³¤³¤Ç¤Ï UniRx ¼«ÂΤβòÀâ¤Ï¹Ô¤¤¤Þ¤»¤ó¡£


£³¡¥OwnerStatus ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¥Ð¥È¥ë»þ¤Ë¤ª¤±¤ë¥«¡¼¥É¤òÇÛÃÖ¤¹¤ë°ÌÃ֤Υª¡¼¥Ê¡¼¤ä¡¢¥­¥ã¥é¥¯¥¿¡¼¤Î½êÍ­¼Ô¤òÀßÄꤹ¤ëºÝ¤ËÍøÍѤ·¤Þ¤¹¡£
¤³¤³¤Ç¤Ï£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤ÆºîÀ®¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¼¡¤Î Character ¥¯¥é¥¹Æâ¤Ëµ­½Ò¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤½¤Î¾ì¹ç¡¢Æþ¤ì»Ò·¿¤Ë¤Ï¤»¤º¡¢£±¤Ä¤ÎÆÈΩ¤·¤¿ enum ¤È¤·¤ÆºîÀ®¤·¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£


OwnerStatus.cs

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



£´¡¥Character ¥¯¥é¥¹¤òºîÀ®¤¹¤ë


¡¡System.Serializable °À­¤ò¥¯¥é¥¹¤ËÉÕÍ¿¤¹¤ë¤³¤È¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¥¯¥é¥¹ÆâÉô¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


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



£µ¡¥¡ãnamespace ¤Îµ¡Ç½¡ä


¡¡namespace¤Ï¡¢C#¤Ç¥×¥í¥°¥é¥ß¥ó¥°¤¹¤ëºÝ¤Ë¥³¡¼¥É¤ÎÀ°Íý¤ä¹½Â¤²½¤ò½õ¤±¤ë¤¿¤á¤Î»ÅÁȤߤǤ¹¡£
Unity¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢Ê£¿ô¤Î¥¹¥¯¥ê¥×¥È¤ä¥¯¥é¥¹¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤òŬÀÚ¤ËÀ°Íý¤·¡¢Ì¾Á°¤Î¾×ÆͤòÈò¤±¤ë¤¿¤á¤Ënamespace¤ò»ÈÍѤ·¤Þ¤¹¡£

¡¡namespace¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¥¯¥é¥¹¤ä´Ø¿ô¤¬¤É¤Î¥°¥ë¡¼¥×¤Ë°¤·¤Æ¤¤¤ë¤«¤òÌÀ¼¨Åª¤Ë»ØÄê¤Ç¤­¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢°Û¤Ê¤ë¾ì½ê¤ÇƱ¤¸Ì¾Á°¤Î¥¯¥é¥¹¤ä´Ø¿ô¤òÄêµÁ¤·¤Æ¤â¡¢¤½¤ì¤¾¤ì¤¬°Û¤Ê¤ënamespace¤Ë°¤·¤Æ¤¤¤ë¸Â¤ê¡¢Ì¾Á°¤Î¾×Æͤò²óÈò¤Ç¤­¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢¥¢¥»¥Ã¥È¥¹¥È¥¢¤«¤é¥¤¥ó¥Ý¡¼¥È¤·¤¿¥¢¥»¥Ã¥ÈÆâ¤Î¥¹¥¯¥ê¥×¥È¤Î¥Õ¥¡¥¤¥ë̾¤Ë¡ÖGameManager¡×¤È¤¤¤¦Ì¾Á°¤¬¤¢¤Ã¤¿¤È¤­¡¢
namespace ¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤ì¤Ð¡¢Æ±Ì¾¤Î GameManager ¤òÊ£¿ôºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë namespace¤ò»È¤¦¤³¤È¤Ç¡¢°Û¤Ê¤ë¥¹¥¯¥ê¥×¥È¤Ç¤âƱ¤¸Ì¾Á°¤Î¥¯¥é¥¹¤ä´Ø¿ô¤òÄêµÁ¤Ç¤­¡¢¤½¤ì¤¾¤ì¤¬ÆÈΩ¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£

¡¡¤Þ¤¿Â絬ÌÏ¤Ê¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¿ôÉ´¤â¤Î¥¯¥é¥¹¤ä´Ø¿ô¤¬Â¸ºß¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤é¤ònamespace¤´¤È¤Ë¤Þ¤È¤á¤ë¤³¤È¤Ç¡¢¥³¡¼¥É¤ÎÀ°Íý¤¬¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢UI¤Ë´Ø¤¹¤ë¥¯¥é¥¹¤Ï¡ÖUI¡×namespace¤Ë¤Þ¤È¤á¡¢¥²¡¼¥à¥í¥¸¥Ã¥¯¤Ë´Ø¤¹¤ë¥¯¥é¥¹¤Ï¡ÖGameplay¡×namespace¤Ë¤Þ¤È¤á¤ë¤Ê¤É¡¢µ¡Ç½¤´¤È¤ËÀ°Íý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥Ô¥ê¥ª¥É¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¡ÖMyGame.UI¡×¤ä¡ÖMyGame.GamePlay¡×¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â²Äǽ¤Ç¤¹¡£

¡¡ºîÀ®¤·¤¿ namespace ¤Ï using ¤ÇÀë¸À¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤¤¤Ä¤â¥¹¥¯¥ê¥×¥È¤Î¾åÉô¤Ë½ñ¤¤¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¤Í¡£



¡¡C#¤Ç¤Înamespace¤ÎÀë¸À¤ÏÈó¾ï¤Ë´Êñ¤Ç¤¹¡£
Ä̾¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤Ënamespace¤òÀë¸À¤·¤Þ¤¹¡£

¡¡°Ê²¼¤Ï´ðËÜŪ¤Ê¹½Ê¸¤Ç¤¹¡£

namespace Mynamespace {

    // ¤³¤³¤Ë¥¯¥é¥¹¤ä´Ø¿ô¤òÄêµÁ¤¹¤ë

}
¡¡
¡¡Î㤨¤Ð¡¢¼«Ê¬¤Î¥²¡¼¥à¤Ë´ØÏ¢¤¹¤ë¥¯¥é¥¹¤ä´Ø¿ô¤ò¤Þ¤È¤á¤ë¤¿¤á¤Ë¡¢¼¡¤Î¤è¤¦¤Ënamespace¤òÀë¸À¤Ç¤­¤Þ¤¹¡£


¡ã»ÈÍÑÎã¡ä

namespace MyGame {

    public class Player {
        // ¥×¥ì¥¤¥ä¡¼¤Î¥×¥í¥Ñ¥Æ¥£¤ä¥á¥½¥Ã¥É¤òÄêµÁ
    }

    public class Enemy {
        // Ũ¤Î¥×¥í¥Ñ¥Æ¥£¤ä¥á¥½¥Ã¥É¤òÄêµÁ
    }
}

¡¡¾åµ­¤ÎÎã¤Ç¤Ï¡¢Player¥¯¥é¥¹¤ÈEnemy¥¯¥é¥¹¤Ï¶¦¤ËMyGame¤È¤¤¤¦namespace¤Ë°¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢Â¾¤ÎnamespaceÆâ¤ÇƱ¤¸Ì¾Á°¤Î¥¯¥é¥¹¤¬Â¸ºß¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡
¡¡ºîÀ®¤·¤¿ namespace ¤Ï¾¤Î¥¯¥é¥¹Æâ¤Î using ¤ÇÀë¸À¤Ç¤­¤Þ¤¹¡£


£¶¡¥¡ãMonoBehaviour ¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹¡ä


¡¡MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Ê¤¤¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤Ç¡¢ ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ëɳ¤Å¤«¤Ê¤¤¡¢¥Ç¡¼¥¿´ÉÍý¤Î¤ß¤Î¥¯¥é¥¹¤È¤·¤ÆÀ©ºî¤·¤Æ¤ª¤­¤Þ¤¹¡£

¡¡MonoBehaviour¤Î·Ñ¾µ¤¬¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤Î¥¯¥é¥¹¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤·¡¢Instantiate ¥á¥½¥Ã¥É¤ÇÀ¸À®½ÐÍè¤Þ¤»¤ó¡£
Âå¤ï¤ê¤Ë¡¢¤¤¤º¤ì¤Î¥¹¥¯¥ê¥×¥È¤«¤é¤Ç¤â¥¤¥ó¥¹¥¿¥ó¥¹(new)¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¾ì¹ç¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¥á¥½¥Ã¥É¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç½é´üÃͤÎÂåÆþ½èÍý¤â²Äǽ¤Ç¤¹¡£


£·¡¥¡ãUniRx ¤Î³èÍÑ¡¡¡¼ReactiveProperty¡¼¡ä


¡¡²¼µ­¤Î½èÍý¤Ë¤ª¤¤¤Æ¡¢UniRx ¤Î ReactiveProperty ¤¬ÍøÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£

    public ReactiveProperty<int> Hp = new();
    public ReactiveProperty<int> Shield = new();
    public ReactiveProperty<int> AttackPower = new();


    /// <summary>
    /// Hp ¹¹¿·
    /// </summary>
    /// <param name="amount"></param>
    public virtual void UpdateHp(int amount) {
        hp = Mathf.Clamp(hp += amount, 0, maxHp);
        Debug.Log($" {status} : {GetHp}");

        Hp.Value = Mathf.Clamp(Hp.Value += amount, 0, maxHp);
        Debug.Log($" {status} : {Hp.Value}");
    }

    /// <summary>
    /// ¥·¡¼¥ë¥ÉÃ͹¹¿·
    /// </summary>
    /// <param name="amount"></param>
    public void UpdateShield(int amount) {
        Shield.Value += amount;
        Debug.Log($" {status} : {Shield.Value}");
    }

¡¡ReactiveProperty ¤Ï¥×¥í¥Ñ¥Æ¥£¤Î°·¤¤¤È¤Ê¤ê¤Þ¤¹¤¬¡¢¥·¥ê¥¢¥é¥¤¥º¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼É½¼¨²Äǽ¤Ç¤¹¡£
Value ¤òÍøÍѤ·¤ÆÃͤ˥¢¥¯¥»¥¹¤·¤Þ¤¹¡£

¡¡Ãͤ¬¹¹¿·¤µ¤ì¤ë¤È¡¢Subscribe ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ÃͤËɳ¤Å¤¤¤Æ¾¤Î½èÍý¤òϢư¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
¡Ê¤³¤Î»þÅÀ¤Ç¤Ï¤Þ¤À Subscribe ¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡Ë


£·¡¥GameData ¥¯¥é¥¹¤òºîÀ®¤¹¤ë

£±¡¥Àß·×


¡¡¥²¡¼¥àÆâ¤Î¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¥¯¥é¥¹¤Ç¤¹¡£
¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤äŨ¤Î¾ðÊó¡¢¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤Ê¤É¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤òºîÀ®¤·¡¢°ì¸µ´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡
¡¡¤³¤Î¥¯¥é¥¹¤Ï¿¤¯¤Î¥¯¥é¥¹¤«¤é»²¾È¤µ¤ì¤ë¤³¤È¤¬Â¿¤¯¤Ê¤ëÁ°Äó¤Ç¤¹¤Î¤Ç¡¢¥·¥ó¥°¥ë¥È¥ó¡¦¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤¿À߷פò¹Ô¤¤¤Þ¤¹¡£

¡¡Æä˥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤Î¾ì¹ç¡¢¥·¡¼¥óÁ«°Ü»þ¤Ë¤âÇË´þ¤µ¤ì¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤¹¤ë¤³¤È¤Ç
¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤âÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¥¢¥¯¥»¥¹¤Ç¤­¡¢¥·¡¼¥óÁ«°Ü¸å¤âÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥¯¥é¥¹¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£


£²¡¥GameData ¥¯¥é¥¹¤òºîÀ®¤¹¤ë


¡¡À޳ѤǤ¹¤Î¤Ç¡¢¤³¤Á¤é¤Ç¤â namespace ¤âÍøÍѤ·¤Æ¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Phantom
{
    public class GameData : MonoBehaviour
    {
        public static GameData instance;

        private Character player;
        private Character opponent;


        void Awake() {
            if (instance == null) {
                instance = this;
                DontDestroyOnLoad(gameObject);
            }
            else {
                Destroy(gameObject);
            }

¡¡¡¡¡¡¡¡¡¡¡¡// ¥Ç¥Ð¥Ã¥°
¡¡¡¡¡¡¡¡¡¡¡¡InitCharacter(OwnerStatus.Player, 10);
        }

        /// <summary>
        /// ¥­¥ã¥é¥¯¥é¡¼¤ÎÀ¸À®
        /// ¥×¥ì¥¤¥ä¡¼¤ÈÂÐÀïÁê¼ê¶¦ÍÑ
        /// </summary>
        /// <param name="status"></param>
        /// <param name="hp"></param>
        public void InitCharacter(OwnerStatus status, int hp) {
            if (status == OwnerStatus.Player) {
                // ¥×¥ì¥¤¥ä¡¼¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¡¢HP¤òÀßÄê
                player = new (hp, status);
                Debug.Log($"¥×¥ì¥¤¥ä¡¼À¸À® /  Hp : {hp}")
            }else{
                // ÂÐÀïÁê¼ê¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¡¢HP¤òÀßÄê
                opponent = new (hp, status);
                Debug.Log($"ÂÐÀïÁê¼êÀ¸À® /  Hp : {hp}")
            }
        }

        public Character GetPlayer() => player;
        
        public Character GetOpponent() => opponent;
    }
}

¡¡Àè¤Û¤ÉºîÀ®¤·¤¿ Character ¥¯¥é¥¹¤òÍøÍѤ·¡¢¥×¥ì¥¤¥ä¡¼¤ÈŨ¤ÎξÊý¤òƱ̾¤Î¥¯¥é¥¹¤Ç´ÉÍý¤·¤Þ¤¹¡£
¤½¤ì¤¾¤ì¤¬°Û¤Ê¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤ò»ý¤Ä¤¿¤á¡¢Æ±¤¸¥¯¥é¥¹¤Ç¤¢¤Ã¤Æ¤â¡¢°Û¤Ê¤ë Hp ¤ò´ÉÍý¤Ç¤­¤Þ¤¹¡£


£³¡¥¡ã¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¡ä


¡¡¥·¥ó¥°¥ë¥È¥ó¤È¤Ï¡¢¿ô¿¤¯¤¢¤ë¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î£±¤Ä¤Ç¤¹¡£¤½¤Î¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬É¬¤º£±¤Ä¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£

¡¡GameData ¥¯¥é¥¹¤Ç¤Ï¡¢¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥²¡¼¥àÃæ¤òÄ̤¸¤Æ¡¢¤³¤ÎGameData ¥¯¥é¥¹¤¬£±¤Ä¤·¤«Â¸ºß¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÂÁõÎã¤ÏÊ£¿ô¤¢¤ê¤Þ¤¹¤¬¡¢°ìÈÖÆɤߤ䤹¤¤Êý¼°¤Çµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤Ë¤è¤Ã¤Æ¥¤¥ó¥¹¥¿¥ó¥¹¤¬£±¤Ä¤«À¸À®¤µ¤ì¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤ÎGameData ¥¯¥é¥¹¤Ø¤Î»²¾È¤Ï¡¢¤¤¤º¤ì¤Î¥¯¥é¥¹¤«¤é¤Ç¤¢¤Ã¤Æ¤âÊÑ¿ô¤ò²ð¤µ¤º¤Ë»²¾È¤ò¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡Î㤨¤Ð¡¢Enemy¤È¤¤¤¦¥¯¥é¥¹¤¬¤¢¤ê¡¢¤½¤ÎEmeny¥¯¥é¥¹¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬£µ¤Ä¤¢¤Ã¤¿¾ì¹ç¡¢¡Ö¤É¤Î¡×Enemy¥¯¥é¥¹¤Ç¤¢¤ë¤«¤ò³ÎÄê¤Ç¤­¤Ê¤¤¤È¡¢ÂоݤȤʤëEnemy¥¯¥é¥¹¤Ø¤Ï»²¾È¤Ç¤­¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢Enemy·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÊÑ¿ô¤Ø»²¾È¤·¤¿¤¤Enemy¥¯¥é¥¹¤òÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤Ï¤¸¤á¤ÆEnemy¥¯¥é¥¹¤Î¾ðÊó¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤Ç¤¹¤¬¥·¥ó¥°¥ë¥È¥ó¤Ç¤¢¤ëGameData ¥¯¥é¥¹¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¾ï¤Ë£±¤Ä¤·¤«¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¡Ö¤É¤Î¡×¤È¤¤¤¦»ØÄê¤ÎÉôʬ¤¬ÉÔÍפˤʤê¤Þ¤¹¡£
¤Ä¤Þ¤êÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬ÉÔÍפˤʤê¤Þ¤¹¡£

¡¡GameData ¤È¤¤¤¦»ØÄê¤Ï¤¹¤Ê¤ï¤Á¡¢¼«Æ°Åª¤Ë¤¿¤À£±¤Ä¤Î GameData ¤Ø¤Î»²¾È¤¬¹Ô¤ï¤ì¤Þ¤¹¡£


£´¡¥¡ã¥é¥à¥À¼°¤òÍøÍѤ·¤¿¡¢Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤Î¾Êάµ­Ë¡¡ä


¡¡Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤¬£±¹Ô¤À¤±¤Î¾ì¹ç¡¢¥é¥à¥À¼°¤òÍøÍѤ¹¤ë¤³¤È¤Ç¾Êάµ­Ë¡¤Ë¤è¤êµ­½Ò¤Ç¤­¤Þ¤¹¡£


¡ãÄ̾ï¤ÎÌá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¡ä
    /// <summary>
    /// ¥×¥ì¥¤¥ä¡¼¤Î¼èÆÀ
    /// </summary>
    /// <returns></returns>
    public Character GetPlayer() {
        return player;
    }

    /// <summary>
    /// ÂÐÀïÁê¼ê(¥¨¥Í¥ß¡¼)¤Î¼èÆÀ
    /// </summary>
    /// <returns></returns>
    public Character GetOpponent() {
        return opponent;
    }

¡¡¡¡¡¡¢­

¡ã¥é¥à¥À¼°¤òÍøÍѤ·¤¿¡¢Ìá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤Î¾Êάµ­Ë¡¡ä
    public Character GetPlayer() => player;

    public Character GetOpponent() => opponent;

¡¡¥é¥à¥À¼°¤Î½ñ¼°¤Ë§¤ê¡¢°ú¿ô => ½èÍý¤Î½ñ¼°¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡Ìá¤êÃͤΤʤ¤ void ¥á¥½¥Ã¥É¤Ç¤ÏÍøÍѤǤ­¤Þ¤»¤ó¡£


£µ¡¥GameData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢GameData ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤¹¤ë


¡¡Create Empty ¤Ç¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢GameData ¤Ë̾Á°¤òÊѤ¨¤Þ¤¹¡£

¡¡ºîÀ®¤·¤¿ GameData ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü




£¶¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡¤É¤Î¤è¤¦¤Ë½èÍý¤¬Æ°¤¤¤Æ¡¢¤É¤Î¤è¤¦¤Ë¤Ê¤ì¤Ð¤¤¤¤¤Î¤«¡¢¥¤¥á¡¼¥¸¤òºî¤Ã¤Æ¤«¤é³Îǧ¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢GameData ¥¯¥é¥¹¤¬¥Ò¥¨¥é¥ë¥­¡¼Æâ¤Î DontDestroyOnLoad ¥·¡¼¥ó¤Ë°ÜÆ°¤¹¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£



¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£

¡¡¼¡¤Ï¡¡¼ê½ç£µ¡¡¡Ý¡Ý?¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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