ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ06·î25Æü(Æü) 17:21:08ÍúÎò
¡¡¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤òÅÐÏ¿¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
ȯŸ£±£¹ ¡¼¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸ÈÖ¹æ¤ÎÅÐÏ¿µ¡Ç½¡¼
¡¡¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤òÅÐÏ¿¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¤É¤Î¤è¤¦¤ËÅÐÏ¿¤¹¤ë¤«¤ÏǤ°Õ¤Ç¤¹¤¬¡¢º£²ó¤ÎÀ߷פǤϡ¢¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ò List ¤ËÅÐÏ¿¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢¤³¤Î¾ðÊó¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¸åÄø¡¢¥¿¥¤¥È¥ë²èÌ̤˥¹¥Æ¡¼¥¸¤ÎÁªÂò¥Ü¥¿¥ó¤òºîÀ®¤·¤Þ¤¹¡£
¡¡ºîÀ®¤µ¤ì¤ë¥Ü¥¿¥ó¤Ï¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¡¢¤ª¤è¤Ó¡¢¼¡¤Î¥¹¥Æ¡¼¥¸¤Î¥Ü¥¿¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£
¥²¡¼¥à¥¹¥¿¡¼¥È»þ¤Î¤ß½èÍý¤¬°Û¤Ê¤ë¤¿¤á¡¢Ãí°Õ¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡¸½ºßÁªÂò¤·¤Æ¤¤¤ë¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤È¡¢¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Î List ¤Î¡¢£²¤Ä¤ÎÊÑ¿ô¤ÎÀë¸À¤òÄɲä·¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ÎÄɲäˤÏÀìÍѤΥ᥽¥Ã¥É¤òÍѰդ·¡¢¤Þ¤À List ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤Ç¤¢¤ë¤«¤ò³Îǧ¤·¡¢
½ÅÊ£¤·¤ÆÅÐÏ¿¤µ¤ì¤ë¤³¤È¤òËɤ°½èÍý¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£
GameData.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡Å¬µ¹¤Ê¥¿¥¤¥ß¥ó¥°¤Ç¡¢¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ò GameData ¥¹¥¯¥ê¥×¥È¤ËÄɲä·¤¿
clearStageNoList ÊÑ¿ô¤ËÅÐÏ¿¤·¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤â¡¢¤Ê¤ë¤Ù¤¯½èÍý¤ò¸«¤ëÁ°¤Ë¼«Ê¬¤Ç½ñ¤¤³¤ó¤Ç¤ß¤Æ¤¯¤À¤µ¤¤¡£
GameManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¥²¡¼¥à¥¯¥ê¥¢¤Î¥¿¥¤¥ß¥ó¥°¤Ç½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¡¢GameData ¥¹¥¯¥ê¥×¥ÈÆâ¤Î List ¤Ë¥¹¥Æ¡¼¥¸¤ÎÈֹ椬ÅÐÏ¿¤µ¤ì¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡ÅÐÏ¿¤µ¤ì¤ë¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡È¯Å¸£²£°¡¡¡¼¥¹¥Æ¡¼¥¸ÁªÂòµ¡Ç½¡¼¡¡¤Ç¤¹¡£
ȯŸ£±£¹ ¡¼¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸ÈÖ¹æ¤ÎÅÐÏ¿µ¡Ç½¡¼
¡¡¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤Î¾ðÊó¤òÅÐÏ¿¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¤É¤Î¤è¤¦¤ËÅÐÏ¿¤¹¤ë¤«¤ÏǤ°Õ¤Ç¤¹¤¬¡¢º£²ó¤ÎÀ߷פǤϡ¢¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ò List ¤ËÅÐÏ¿¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢¤³¤Î¾ðÊó¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¸åÄø¡¢¥¿¥¤¥È¥ë²èÌ̤˥¹¥Æ¡¼¥¸¤ÎÁªÂò¥Ü¥¿¥ó¤òºîÀ®¤·¤Þ¤¹¡£
¡¡ºîÀ®¤µ¤ì¤ë¥Ü¥¿¥ó¤Ï¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¡¢¤ª¤è¤Ó¡¢¼¡¤Î¥¹¥Æ¡¼¥¸¤Î¥Ü¥¿¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£
¥²¡¼¥à¥¹¥¿¡¼¥È»þ¤Î¤ß½èÍý¤¬°Û¤Ê¤ë¤¿¤á¡¢Ãí°Õ¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡¸½ºßÁªÂò¤·¤Æ¤¤¤ë¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤È¡¢¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Î List ¤Î¡¢£²¤Ä¤ÎÊÑ¿ô¤ÎÀë¸À¤òÄɲä·¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ÎÄɲäˤÏÀìÍѤΥ᥽¥Ã¥É¤òÍѰդ·¡¢¤Þ¤À List ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤Ç¤¢¤ë¤«¤ò³Îǧ¤·¡¢
½ÅÊ£¤·¤ÆÅÐÏ¿¤µ¤ì¤ë¤³¤È¤òËɤ°½èÍý¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£
GameData.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameData : MonoBehaviour { public static GameData instance; [Header("½ê»ý¤·¤Æ¤¤¤ëÉð´ï¤ÎÅÐÏ¿Íѥꥹ¥È")] public List<WeaponData> weaponDatasList = new List<WeaponData>(); ////* ÊÑ¿ô¤ÎÀë¸À¤ò£²¤ÄÄɲà *//// public int chooseStageNo; public List<int> clearStageNoList = new List<int>(); ////* ¤³¤³¤Þ¤Ç *//// void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } /// <summary> /// Éð´ï¥Ç¡¼¥¿¤ÎÅÐÏ¿ /// </summary> /// <param name="weaponData"></param> public void AddWeaponData(WeaponData weaponData) { weaponDatasList.Add(weaponData); Debug.Log("Éð´ïÄɲà : " + weaponData.weaponName); } ////* ¤³¤³¤«¤é¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *//// /// <summary> /// ¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤òÄɲà /// </summary> /// <param name="stageNo"></param> public void AddClearStageNoList(int stageNo) { // ¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈֹ椬¤Þ¤À¥ê¥¹¥È¤Ë¤Ê¤¤¾ì¹ç if (!clearStageNoList.Contains(stageNo)) { // List ¤ËÄɲà clearStageNoList.Add(stageNo); // TODO ¥»¡¼¥Ö } } ////* ¤³¤³¤Þ¤Ç *//// }
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡Å¬µ¹¤Ê¥¿¥¤¥ß¥ó¥°¤Ç¡¢¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ò GameData ¥¹¥¯¥ê¥×¥È¤ËÄɲä·¤¿
clearStageNoList ÊÑ¿ô¤ËÅÐÏ¿¤·¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤â¡¢¤Ê¤ë¤Ù¤¯½èÍý¤ò¸«¤ëÁ°¤Ë¼«Ê¬¤Ç½ñ¤¤³¤ó¤Ç¤ß¤Æ¤¯¤À¤µ¤¤¡£
GameManager.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameManager : MonoBehaviour { [SerializeField] private RailMoveController railMoveController; [SerializeField, Header("·ÐÏ©ÍѤΥѥ¹·²¤Î¸µ¥Ç¡¼¥¿")] private RailPathData originRailPathData; // ¸åÄø List ²½¤·¤ÆÊ£¿ô¤Î¥ë¡¼¥È¤ò´ÉÍý¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤¹ [SerializeField, Header("¥Ñ¥¹¤Ë¤ª¤±¤ë¥ß¥Ã¥·¥ç¥ó¤ÎȯÀ¸Í̵")] // Debug ÍÑ private bool[] isMissionTriggers; [SerializeField] private PlayerController playerController; [SerializeField] private EventGenerator eventGenerator; [SerializeField, Header("¥ß¥Ã¥·¥ç¥ó¤ÇȯÀ¸¤·¤Æ¤¤¤ëŨ¤Î¥ê¥¹¥È")] private List<EnemyController> enemiesList = new List<EnemyController>(); private int currentMissionDuration; [Header("¸½ºß¤Î¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ")] public GameState currentGameState; [SerializeField] private WeaponEventInfo weaponEventInfo; [SerializeField] private UIManager uiManager; [SerializeField] private WeaponChanger weaponChanger; [SerializeField] private CameraController cameraController; [SerializeField] ¡¡¡¡//¡¡Debug ÍÑ¤Ë SerializeField°À¤òÉÕÍ¿¤·¤Æ¤¤¤Þ¤¹¡£³Îǧ¤¬ºÑ¤ó¤À¤é SerializeField°À ¤Ïºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£ private bool[] isMoviePlays; private IEnumerator Start() { SoundManager.instance.PlayBGM(SoundDataSO.BgmType.Main); // ¥²¡¼¥à¤Î¾õÂÖ¤ò½àÈ÷Ãæ¤Ë¤¹¤ë currentGameState = GameState.Wait; // ¥ë¡¼¥ÈÍѤηÐÏ©¾ðÊó¤òÀßÄê originRailPathData = DataBaseManager.instance.GetRailPathDatasFromBranchNo(0, BranchDirectionType.NoBranch); // ¥¤¥Ù¥ó¥ÈÀ¸À®µ¡Ç½¤Î½àÈ÷ eventGenerator.SetUpEventGenerator(this, playerController); // ½é´üÉð´ïÅÐÏ¿ GameData.instance.AddWeaponData(DataBaseManager.instance.GetWeaponData(0)); // Éð´ï¼èÆÀ¥¤¥Ù¥ó¥ÈÍѤÎÀßÄê weaponEventInfo.InitializeWeaponEventInfo(); // ½é´üÉð´ïÀßÄê playerController.ChangeBulletData(GameData.instance.weaponDatasList[0]); // ½é´üÉð´ï¤Î¥â¥Ç¥ëɽ¼¨ weaponChanger.InitWeaponModel(); // Éð´ïÀÚ¤êÂØ¤¨¥Ü¥¿¥ó¤Ë¥á¥½¥Ã¥É¤òÅÐÏ¿ uiManager.GetWeaponChangeButton().onClick.AddListener(weaponChanger.ChangeWeapon); // RailMoveController ¤Î½é´üÀßÄê railMoveController.SetUpRailMoveController(this); // ¥Ñ¥¹¥Ç¡¼¥¿¤è¤ê¥ß¥Ã¥·¥ç¥ó¤ÎȯÀ¸Í̵¾ðÊó¼èÆÀ SetMissionTriggers(); // ¼¡¤ËºÆÀ¸¤¹¤ë¥ì¡¼¥ë°Üư¤ÎÌÜŪÃϤȷÐÏ©¤Î¥Ñ¥¹¤òÀßÄê railMoveController.SetNextRailPathData(originRailPathData); // ·ÐÏ©¤Î½àÈ÷¤¬´°Î»¤¹¤ë¤Î¤òÂÔ¤Ä yield return new WaitUntil(() => railMoveController.GetMoveSetting()); // ¥²¡¼¥à¤Î¾õÂÖ¤ò¥×¥ì¥¤Ãæ¤ËÊѹ¹¤¹¤ë currentGameState = GameState.Play_Move; } /// <summary> /// ¥Ñ¥¹¥Ç¡¼¥¿¤è¤ê¥ß¥Ã¥·¥ç¥ó¤ÎȯÀ¸Í̵¾ðÊó¼èÆÀ /// </summary> private void SetMissionTriggers() { // ÇÛÎó¤Î½é´ü²½ isMissionTriggers = new bool[originRailPathData.GetIsMissionTriggers().Length]; // ¥ß¥Ã¥·¥ç¥óȯÀ¸Í̵¤Î¾ðÊó¤òÅÐÏ¿ isMissionTriggers = originRailPathData.GetIsMissionTriggers(); // ¥à¡¼¥Ó¡¼ºÆÀ¸¾ðÊóÍѤÎÇÛÎó¤ò½é´ü²½ isMoviePlays = new bool[originRailPathData.GetIsMoviePlays().Length]; // ¥à¡¼¥Ó¡¼ºÆÀ¸Í̵¤Î¾ðÊó¤òÅÐÏ¿ isMoviePlays = originRailPathData.GetIsMoviePlays(); } /// <summary> /// ¥ß¥Ã¥·¥ç¥ó¤ÎȯÀ¸Í̵¤ÎȽÄê /// </summary> /// <param name="index"></param> public void CheckMissionTrigger(int index) { if (isMissionTriggers[index]) { // ¥ß¥Ã¥·¥ç¥óȯÀ¸ PreparateMission(originRailPathData.pathDataDetails[index].missionEventDetail); Debug.Log("¥ß¥Ã¥·¥ç¥óȯÀ¸"); } else { // ¥ß¥Ã¥·¥ç¥ó¤Ê¤·¡£¼¡¤Î¥Ñ¥¹¤Ø°Üư¤òºÆ³« railMoveController.CountUp(); } } /// <summary> /// ¥ß¥Ã¥·¥ç¥ó¤Î½àÈ÷ /// </summary> /// <param name="missionEventDetail"></param> private void PreparateMission(MissionEventDetail missionEventDetail) { // ¥ß¥Ã¥·¥ç¥ó¤Î»þ´ÖÀßÄê currentMissionDuration = missionEventDetail.missionDuration; // Éð´ï¼èÆÀ¥¤¥Ù¥ó¥È¤«È½Äê if (missionEventDetail.eventTypes[0] == EventType.Weapon) { // Éð´ï¤Î¾ðÊó¤ò¼èÆÀ¤·¤Æ¥»¥Ã¥È weaponEventInfo.SetWeaponData(DataBaseManager.instance.GetWeaponData(missionEventDetail.eventNos[0])); weaponEventInfo.Show(); } else { // ¥ß¥Ã¥·¥ç¥óÆâ¤Î³Æ¥¤¥Ù¥ó¥È¤ÎÀ¸À®(Ũ¡¢¥®¥ß¥Ã¥¯¡¢¥È¥é¥Ã¥×¡¢¥¢¥¤¥Æ¥à¤Ê¤É¤òÀ¸À®) eventGenerator.PrepareGenerateEnemies(missionEventDetail.enemyPrefabs, missionEventDetail.eventTrans); } // ¥ß¥Ã¥·¥ç¥ó³«»Ï StartCoroutine(StartMission(missionEventDetail.clearConditionsType)); } /// <summary> /// ¥ß¥Ã¥·¥ç¥ó³«»Ï /// </summary> /// <param name="clearConditionsType"></param> /// <returns></returns> private IEnumerator StartMission(ClearConditionsType clearConditionsType) { // ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò¥ß¥Ã¥·¥ç¥óÃæ¤ËÊѹ¹ currentGameState = GameState.Play_Mission; // ¥ß¥Ã¥·¥ç¥ó¤Î´Æ»ë yield return StartCoroutine(ObservateMission(clearConditionsType)); // ¥ß¥Ã¥·¥ç¥ó½ªÎ» EndMission(); } /// <summary> /// ¥ß¥Ã¥·¥ç¥ó¤Î´Æ»ë /// ³Æ¥¤¥Ù¥ó¥È¤Î¾õÂÖ¤ò´Æ»ë /// </summary> /// <param name="clearConditionsType"></param> /// <returns></returns> private IEnumerator ObservateMission(ClearConditionsType clearConditionsType) { // ¥¯¥ê¥¢¾ò·ï¤òËþ¤¿¤¹¤Þ¤Ç´Æ»ë(currentMissionDuration ÊÑ¿ô¤Ë¤Ï¡¢Å¨¤Î¿ô¤«¡¢»Ä¤ê»þ´Ö¤¬Æþ¤ë) while (currentMissionDuration > 0) { // ¥¯¥ê¥¢¾ò·ï¤¬»þ´Ö·Ð²á¤Î¾ì¹ç if (clearConditionsType == ClearConditionsType.TimeUp) { // ¥«¥¦¥ó¥È¥À¥¦¥ó currentMissionDuration--; } // Éð´ï¼èÆÀ¥¤¥Ù¥ó¥È¤«¤Ä¡¢Éð´ïÁªÂò¤Î¤¤¤º¤ì¤«¤Î¥Ü¥¿¥ó¤ò²¡¤·¤¿¤é if (weaponEventInfo.gameObject.activeSelf && weaponEventInfo.isChooseWeapon) { // ¥¤¥Ù¥ó¥È½ªÎ» currentMissionDuration = 0; weaponEventInfo.Hide(); Debug.Log("Éð´ï¼èÆÀ¥¤¥Ù¥ó¥È½ªÎ»"); yield break; } yield return null; } Debug.Log("¥ß¥Ã¥·¥ç¥ó½ªÎ»"); } /// <summary> /// ¥ß¥Ã¥·¥ç¥ó½ªÎ» /// </summary> public void EndMission() { // Éð´ï¤Î¼èÆÀ¥¤¥Ù¥ó¥È¤Î¾ì¹ç¤Ë¤ÏÉð´ï¤ò¼èÆÀ¤»¤º¤Ë¥Ý¥Ã¥×¥¢¥Ã¥×¤òÊĤ¸¤ë if (weaponEventInfo.gameObject.activeSelf) { weaponEventInfo.Hide(); } // º£²óʬ¤ÎŨ¤Î¾ðÊó¤ò¥¯¥ê¥¢ ClearEnemiesList(); // ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò°ÜÆ°Ãæ¤ËÊѹ¹ currentGameState = GameState.Play_Move; // ¥«¥á¥é¤Î°ÜưºÆ³« railMoveController.CountUp(); } /// <summary> /// Ũ¤Î List ¤ò¥¯¥ê¥¢ /// </summary> private void ClearEnemiesList() { if (enemiesList.Count > 0) { for (int i = 0; i < enemiesList.Count; i++) { Destroy(enemiesList[i]); } } enemiesList.Clear(); } /// <summary> /// Ũ¤Î¾ðÊó¤ò List ¤«¤éºï½ü¤·¡¢¥ß¥Ã¥·¥ç¥óÆâ¤ÎŨ¤Î»Ä¿ô¤ò¸º¤é¤¹ /// </summary> /// <param name="enemy"></param> public void RemoveEnemyList(EnemyController enemy) { currentMissionDuration--; enemiesList.Remove(enemy); } /// <summary> /// Ũ¤Î¾ðÊó¤ò¥ê¥¹¥È¤ËÄɲà /// </summary> /// <param name="enemy"></param> public void AddEnemyList(EnemyController enemy) { enemiesList.Add(enemy); } /// <summary> /// ¥ë¡¼¥È¤Îʬ´ô³Îǧ¤Î½àÈ÷ /// </summary> /// <param name="nextbranchNo">moveCount</param> public void PreparateCheckNextBranch(int nextbranchNo) { StartCoroutine(CheckNextBranch(nextbranchNo)); } /// <summary> /// ¥ë¡¼¥È¤Îʬ´ôȽÄê /// </summary> /// <param name="nextStagePathDataNo"></param> /// <returns></returns> private IEnumerator CheckNextBranch(int nextStagePathDataNo) { if (nextStagePathDataNo >= DataBaseManager.instance.GetStagePathDetasListCount()) { // ½ªÎ» Debug.Log("¥²¡¼¥à½ªÎ»"); // ¥×¥ì¥¤¥ä¡¼Â¦¤Î¥¯¥ê¥¢¤Î½àÈ÷ playerController.PrepareClearSettings(); // ¤¹¤Ù¤Æ¤ÎÉð´ï¤òÈóɽ¼¨ weaponChanger.InactiveWeapons(); // ¥«¥á¥é¤Î±é½Ð cameraController.ClearCameraRoll(playerController.transform.position + new Vector3(0, 0, 10), new Vector3(0, 180, 0), new float[2] { 1.5f, 2.0f }); ////* ½èÍý¤òÄɲä·¤Þ¤¹ *//// // ¥¯¥ê¥¢¤·¤¿¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤ò List ¤ËÄɲà GameData.instance.AddClearStageNoList(currentStageNo); // TODO ¥»¡¼¥Ö ////* ¤³¤³¤Þ¤Ç *//// yield break; } // ¥ë¡¼¥È¤Ëʬ´ô¤¬¤¢¤ë¤«¤É¤¦¤«¤ÎȽÄê if (DataBaseManager.instance.GetBranchDatasListCount(nextStagePathDataNo) == 1) { Debug.Log("ʬ´ô¤Ê¤·¤Ç¼¡¤Î¥ë¡¼¥È¤Ø"); // ʬ´ô¤Ê¤·¤Î¾ì¹ç¡¢¼¡¤Î·ÐÏ©¤òÅÐÏ¿ originRailPathData = DataBaseManager.instance.GetRailPathDatasFromBranchNo(nextStagePathDataNo, BranchDirectionType.NoBranch); } else { // ʬ´ô¤¬¤¢¤ë¾ì¹ç¡¢UI ¤Ëʬ´ô¤òɽ¼¨¤·¡¢ÁªÂò¤òÂÔ¤Ä Debug.Log("¥ë¡¼¥È¤Îʬ´ôȯÀ¸"); // ʬ´ô¤¬¤¢¤ë¾ì¹ç¡¢Ê¬´ô¥¤¥Ù¥ó¥È¤òȯÀ¸¤µ¤»¤Æ¡¢²èÌ̾å¤ËÌð°õ¤Î¥Ü¥¿¥ó¤òɽ¼¨ uiManager.GenerateBranchButtons(DataBaseManager.instance.GetBranchDirectionTypes(nextStagePathDataNo)); // ʬ´ô¤òÁªÂò¤¹¤ë¤Þ¤ÇÂÔµ¡(while ¤Ç¤âOK) yield return new WaitUntil(() => uiManager.GetSubmitBranch().Item1 == true); // ÁªÂò¤·¤¿Ê¬´ô¤Î¥ë¡¼¥È¤òÀßÄê originRailPathData = DataBaseManager.instance.GetRailPathDatasFromBranchNo(nextStagePathDataNo, uiManager.GetSubmitBranch().Item2); } // ¥ë¡¼¥ÈÆâ¤Î¥ß¥Ã¥·¥ç¥ó¾ðÊó¤òÀßÄê SetMissionTriggers(); // ·ÐÏ©¤ò°ÜưÀè¤ËÀßÄê railMoveController.SetNextRailPathData(originRailPathData); // ¥ì¡¼¥ë°Üư¤Î·ÐÏ©¤È°ÜưÅÐÏ¿¤¬´°Î»¤¹¤ë¤Þ¤ÇÂÔµ¡ yield return new WaitUntil(() => railMoveController.GetMoveSetting()); // ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò°ÜÆ°Ãæ¤ËÊѹ¹¤¹¤ë currentGameState = GameState.Play_Move; } /// <summary> /// ¥à¡¼¥Ó¡¼¤òºÆÀ¸¤¹¤ë¤«³Îǧ /// </summary> /// <param name="index"></param> public void CheckMoviePlay(int index) { Debug.Log(index); if (!isMoviePlays[index]) { Debug.Log("¥à¡¼¥Ó¡¼ºÆÀ¸ ¤Ê¤·"); // ¥ß¥Ã¥·¥ç¥óȯÀ¸Í̵¤Î³Îǧ CheckMissionTrigger(index); } else { // ¥à¡¼¥Ó¡¼ºÆÀ¸¤Î½àÈ÷ StartCoroutine(PrepareMoviePlay(index)); } } /// <summary> /// ¥à¡¼¥Ó¡¼ºÆÀ¸¤Î½àÈ÷ /// </summary> /// <param name="index"></param> /// <returns></returns> private IEnumerator PrepareMoviePlay(int index) { Debug.Log("¥à¡¼¥Ó¡¼½àÈ÷³«»Ï"); // Canvas ¤òÈóɽ¼¨ uiManager.SwitchActivateCanvas(false); // ÃÆ¤òȯ¼Í¤ò¤Ç¤¤Ê¤¤¤è¤¦¤Ë¤¹¤ë playerController.IsShootPerimission = false; yield return StartCoroutine(PlayMovie()); /// ¥à¡¼¥Ó¡¼ºÆÀ¸ IEnumerator PlayMovie() { Debug.Log("¥à¡¼¥Ó¡¼ºÆÀ¸³«»Ï"); // ¥à¡¼¥Ó¡¼ºÆÀ¸¤Î½àÈ÷¤ÈºÆÀ¸ VideoClipManager.instance.PrepareVideoClip(originRailPathData.pathDataDetails[index].missionEventDetail.videoNo, originRailPathData.pathDataDetails[index].missionEventDetail.videoClip); // ¥à¡¼¥Ó¡¼¤Î½àÈ÷»þ´Ö¤À¤±ÂÔµ¡ yield return new WaitForSeconds(1.5f); Debug.Log("¥à¡¼¥Ó¡¼½àÈ÷ÂÔµ¡ ½ªÎ»"); // ¥à¡¼¥Ó¡¼ºÆÀ¸¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂÔµ¡¡Ê¤É¤Á¤é¤Î½èÍý¤Ç¤âÂÔµ¡¤Ç¤¤Þ¤¹¡Ë yield return new WaitUntil(() => !VideoClipManager.instance.IsVideoPlaying); //yield return new WaitForSeconds((float)originRailPathData.pathDataDetails[index].missionEventDetail.videoClip.length); Debug.Log("¥à¡¼¥Ó¡¼ºÆÀ¸¡¡½ªÎ»"); // ²èÌ̤Υե§¡¼¥É¥¤¥ó¤¬Ìá¤ë¤Þ¤Ç¤Î´Ö¡¢ÂÔµ¡¤·¤Æ¤«¤é yield return new WaitForSeconds(1.0f); // Canvas ¤òɽ¼¨ uiManager.SwitchActivateCanvas(true); // ¥à¡¼¥Ó¡¼¤¬½ªÎ»¤·¤¿¤Î¤ÇÃÆ¤Îȯ¼Í¤òµö²Ä playerController.IsShootPerimission = true; // ¥ß¥Ã¥·¥ç¥óȯÀ¸Í̵¤Î³Îǧ CheckMissionTrigger(index); } } }
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¥²¡¼¥à¥¯¥ê¥¢¤Î¥¿¥¤¥ß¥ó¥°¤Ç½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¡¢GameData ¥¹¥¯¥ê¥×¥ÈÆâ¤Î List ¤Ë¥¹¥Æ¡¼¥¸¤ÎÈֹ椬ÅÐÏ¿¤µ¤ì¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡ÅÐÏ¿¤µ¤ì¤ë¥¹¥Æ¡¼¥¸¤ÎÈÖ¹æ¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡È¯Å¸£²£°¡¡¡¼¥¹¥Æ¡¼¥¸ÁªÂòµ¡Ç½¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯