ºÇ½ª¹¹¿·¡§
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 ¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

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




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