¡¡DisplayDialog ¥á¥½¥Ã¥É¤Ë¤ª¤¤¤Æ¡¢¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¡¢¤½¤Î¿ÊĽ¤Ë±þ¤¸¤Æ¼«Æ°Åª¤Ëʬ´ô¤·¤Æɽ¼¨¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç½èÍý¤ÎÃæ¤Ç¤â¡¢½¤Àµ²Õ½ê¤¬¤â¤Ã¤È¤â¹¤¯¡¢½èÍý¤¬Ê£»¨¤Ç¤¹¡£¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤¤¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡²ñÏÃ¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¤Þ¤ººÇ½é¤Ë¡¢¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Ê¤Î¤«¡¢½¾Íè¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Ê¤Î¤«¤òȽÄꤷ¤Æ½èÍý¤òʬ´ô¤·¤Þ¤¹¡£
¤½¤Î¸å¡¢¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Ç¤¢¤Ã¤¿¾ì¹ç¡¢½é¤á¤Æ²ñÏÃ¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤È¤¤Ë¤Ï¡¢°ÍÍê¤È¤Ê¤ë Need/Permission ¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¡¡£²²óÌܰʹߤËƱ¤¸ NPC ¤ËÏä·¤«¤±¤¿ºÝ¤Ë¤Ï¡¢°ÍÍêãÀ®¤È¤Ê¤ë¤¿¤á¥¢¥¤¥Æ¥à¤ò¥×¥ì¥¤¥ä¡¼¤¬½ê»ý¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¼«Æ°¤ÇȽÄꤷ¤Þ¤¹¡£
Ê£¿ô¤Î¥¢¥¤¥Æ¥à»ØÄê¤ä¡¢Ê£¿ô¸Ä¤Î»ØÄ꤬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤é¤¹¤Ù¤Æ¤òËþ¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¡¢°ÍÍêãÀ®¤ÈȽÄꤷ¡¢¤½¤ì°Ê³°¤Ï̤ãÀ®¤ÈȽÄꤷ¤Þ¤¹¡£
¡¡È½Äê·ë²Ì¤Ë¤è¤Ã¤Æ¤Þ¤¿¼«Æ°¤Çʬ´ô¤ò¹Ô¤¦½èÍý¤òÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢°ÍÍê¤òãÀ®¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï Get ¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£
̤ãÀ®¤Î¾ì¹ç¤Ë¤ÏºÆÅÙ¡¢Need/Permission ¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¡¡°ÍÍê¤òãÀ®¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Need ¤Î¾ì¹ç¤Ë¤Ï¡¢°ÍÍꤵ¤ì¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤¬¾ÃÈñ¤µ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢GameData ¥¯¥é¥¹¤Ç´ÉÍý¤·¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤Î¥¤¥ó¥Ù¥ó¥È¥ê¡¼¤«¤é¸º¤é¤¹½èÍý¤¬É¬Íפˤâ¤Ê¤ê¤Þ¤¹¡£
¡¡Permission ¤Î¾ì¹ç¤Ë¤Ï¾ÃÈñ¤Ï¤µ¤ì¤Þ¤»¤ó¡£
¡¡¤½¤Î¸å¡¢°ÍÍêãÀ®¤Î¤´Ë«Èþ¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¥¢¥¤¥Æ¥à¤Ê¤É¤òÆþ¼ê¤·¤¿½èÍý¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Á¤é¤â¥¢¥¤¥Æ¥à¥¤¥ó¥Ù¥ó¥È¥ê¡¼¤Î¹¹¿·¤¬É¬Íפˤʤê¤Þ¤¹¡£
¥¢¥¤¥Æ¥à¤Ë¤Ä¤¤¤Æ¤ÏÊ£¿ô¼ïÎà¤ÎÅÐÏ¿¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢¥á¥½¥Ã¥É¤â¤½¤ì¤Ë¹ç¤ï¤»¤ÆÊѹ¹¤·¤Þ¤¹¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë£±¼ïÎष¤«³ÍÆÀ¤Ç¤¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¡¡
¡¡¤³¤Î¥¢¥¤¥Æ¥à¤Î³ÍÆÀ½èÍý¤ÎÊѹ¹¤Ëȼ¤¤¡¢GetEventItems ¥á¥½¥Ã¥É¤Î½èÍý¤âÊѹ¹¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤Á¤é¤Ï¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤È¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢Ìá¤êÃͤ¬Êѹ¹¤Ë¤Ê¤ê¡¢Ê£¿ô¤Î¥¢¥¤¥Æ¥à¤ò³ÍÆÀ¤Ç¤¤ë¤è¤¦¤Ë¤·¤¿¤¿¤á¤Ç¤¹¡£
¡¡DisplaySearchDialog ¥á¥½¥Ã¥É¤âƱÍͤ˥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ë¤Ê¤Ã¤Æ¡¢GetEventItems ¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·Ì¿Îá¤ò¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤ËÊѹ¹¤·¤Æ¤¤¤Þ¤¹¡£
¡¡°ÍÍêãÀ®°Ê¹ß¤Ë NPC ¤ËÏä·¤«¤±¤¿¾ì¹ç¤Ë¤Ï Cleard ¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¡¡¤³¤Á¤é¤Îή¤ì¤¬¡¢º£²ó¼ÂÁõ¤¹¤ë½èÍý¤ÎÆâÍƤˤʤäƤ¤¤Þ¤¹¡£
¡¡Æñ¤·¤¤¤¿¤á¡¢¾¯¤·¤º¤Ä¼ÂÁõ¤·¤Æ½èÍý¤ò¸«Ä¾¤·¤Ê¤¬¤é¿Ê¤á¤Æ¤¯¤À¤µ¤¤¡£
DialogController.cs
¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class DialogController : MonoBehaviour
{
[SerializeField]
private Text txtDialog = null;
[SerializeField]
private Text txtTitleName = null;
[SerializeField]
private CanvasGroup canvasGroup = null;
¡¡¡¡[SerializeField]¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
private EventData eventData;
private bool isTalk; // ²ñÏÃÃæ¤Ç¤¢¤ë¾ì¹ç true ¤Ë¤Ê¤ë¡¢²ñÏþõÂÖ¤òɽ¸½¤¹¤ëÊÑ¿ô
private NonPlayerCharacter nonPlayerCharacter;
private float wordSpeed = 0.1f; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ // 1ʸ»úÅö¤¿¤ê¤Îɽ¼¨Â®ÅÙ¡£¾®¤µ¤¤¤Û¤ÉÁ᤯ɽ¼¨¤µ¤ì¤ë
////* ¤³¤³¤«¤éÊÑ¿ô¤òÄɲà *////
private int currentTalkCount; // ²ñÏòó¿ô(bool ·¿¤Ç¤â¤¤¤¤¤Ç¤¹)
////* ¤³¤³¤Þ¤Ç *////
void Start() {
SetUpDialog();
}
/// <summary>
/// ¥À¥¤¥¢¥í¥°¤ÎÀßÄê
/// </summary>
private void SetUpDialog() {
canvasGroup.alpha = 0.0f;
// EventData ¤ò½é´ü²½
eventData = null;
}
/// <summary>
/// ¥À¥¤¥¢¥í¥°¤Îɽ¼¨
/// </summary>
public IEnumerator DisplayDialog(EventData eventData, NonPlayerCharacter nonPlayerCharacter) {
if (this.nonPlayerCharacter == null) {
this.nonPlayerCharacter = nonPlayerCharacter;
}
if (this.eventData == null) {
this.eventData = eventData;
}
canvasGroup.DOFade(1.0f, 0.5f);
txtTitleName.text = this.eventData.title;
¡¡¡¡¡¡¡¡// ²ñÏÃ¥¤¥Ù¥ó¥È³«»Ï
isTalk = true;
////* ¤³¤³¤«¤é½èÍý¤ò½¤Àµ¡¦Äɲà *////
// ¥á¥Ã¥»¡¼¥¸É½¼¨
//yield return StartCoroutine(PlayTalkEventProgress(this.eventData.dialogs)); //¡¡<=¡¡¿Ê¹ÔÃæ¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤Æ½èÍý¤òʬ´ô¤¹¤ë¤¿¤á¡¢¤³¤Î½èÍý¤Ï¥¤¥Ù¥ó¥È¥³¥á¥ó¥È¥¢¥¦¥È¤«ºï½ü¤·¤Þ¤¹
¡¡¡¡¡¡¡¡// ½¾Íè¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Î¾ì¹ç
if (this.eventData.eventDataDetailsList.Exists(x => x.eventProgressType == EventProgressType.None)) {
// TODO ²èÁü¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Image ·¿¤ÎÊÑ¿ô¤òÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ EventDataDetail ¥¯¥é¥¹¤Ë¤¢¤ë eventSprite ¤òÂåÆþ¤¹¤ë
// ¥Î¡¼¥Þ¥ë¤Î²ñÏÃ¥¤¥Ù¥ó¥È
yield return StartCoroutine(PlayTalkEventProgress(this.eventData.eventDataDetailsList.Find(x => x.eventProgressType == EventProgressType.None).dialogs));
¡¡¡¡¡¡¡¡// ¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Î¾ì¹ç
} else {
// ¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¥¯¥ê¥¢ºÑ¤«³Îǧ
if (GameData.instance.CheckClearTalkEventNum(this.eventData.no)) {
// TODO ²èÁü¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Image ·¿¤ÎÊÑ¿ô¤òÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ EventDataDetail ¥¯¥é¥¹¤Ë¤¢¤ë eventSprite ¤òÂåÆþ¤¹¤ë
// ¥¯¥ê¥¢¸å¤Î²ñÏÃ¥¤¥Ù¥ó¥È
yield return StartCoroutine(PlayTalkEventProgress(this.eventData.eventDataDetailsList.Find(x => x.eventProgressType == EventProgressType.Cleard).dialogs));
}
// ¤Þ¤À¥¯¥ê¥¢¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
else {
// ¥¤¥Ù¥ó¥È¤Î¼ïÎà¤òÆÃÄê¡£»ý¤Ã¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤ò¾ÃÌפ¹¤ë¥¿¥¤¥×¤«¡¢»ý¤Ã¤Æ¤¤¤ë¤À¤±¤Æ¤è¤¤¥¿¥¤¥×¤«È½Äꤹ¤ë¤¿¤á¤Ë¡¢EventDataDetail ¤ò¼èÆÀ
EventData.EventDataDetail talkEventDataDetail = this.eventData.eventDataDetailsList.Find(x => (x.eventProgressType == EventProgressType.Need || x.eventProgressType == EventProgressType.Permission));
// ¤Ï¤¸¤á¤Æ²ñÏ䷤Ƥ¤¤ë¾ì¹ç
if (currentTalkCount == 0) {
// TODO ²èÁü¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Image ·¿¤ÎÊÑ¿ô¤òÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ EventDataDetail ¥¯¥é¥¹¤Ë¤¢¤ë eventSprite ¤òÂåÆþ¤¹¤ë
// ¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Î¤¦¤Á¡¢¥¯¥ê¥¢Á°¤Î²ñÏÃ¥¤¥Ù¥ó¥È
yield return StartCoroutine(PlayTalkEventProgress(talkEventDataDetail.dialogs));
currentTalkCount++;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// £²²óÌܰʹߤξì¹ç
} else {
// ²ñÏÃ¥¤¥Ù¥ó¥ÈãÀ®¤Î¥Õ¥é¥°¤Î³Îǧ
bool isNeedItems = false;
// ¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¡¢É¬Íפʥ¢¥¤¥Æ¥à(¤ª¶â¤ä¡¢ÃÏÅÀ¾ðÊó¤Ê¤É´Þ¤à)¤ò¤¹¤Ù¤Æ»ý¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò£±¤Ä¤º¤Ä³Îǧ
for (int i = 0; i < talkEventDataDetail.eventItemNames.Length; i++) {
// ¥¯¥ê¥¢¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¾ì¹ç
if (!GameData.instance.CheckTalkEventItemFromItemInvenry(talkEventDataDetail.eventItemNames[i], talkEventDataDetail.eventItemCounts[i])) {
// ¥Á¥§¥Ã¥¯¤ò½ªÎ»¤·¤Æ¡¢»ý¤Ã¤Æ¤¤¤Ê¤¤È½Äê¤Ë¤¹¤ë
break;
} else {
// ¥¯¥ê¥¢¥¢¥¤¥Æ¥à¤¬¤¢¤ê¡¢ºÇ¸å¤Î³Îǧ¤Î¾ì¹ç
if (i == talkEventDataDetail.eventItemNames.Length - 1) {
// ¥¯¥ê¥¢¤ËɬÍפʤ¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò»ý¤Ã¤Æ¤¤¤ëȽÄê¤Ë¤¹¤ë
isNeedItems = true;
}
}
}
// ¥¯¥ê¥¢¥¢¥¤¥Æ¥à¤¬É¬Í׿ô¤À¤±¤¢¤ë¤«³Îǧ
if (isNeedItems) {
// ¤¹¤Ù¤Æ¤½¤í¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¥¯¥ê¥¢È½Äê¤È¤Æ¿Ê¹Ô·¿¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¿Ê¤á¤ë
// ½é²ó¥¯¥ê¥¢¤Ê¤é
if (!GameData.instance.CheckClearTalkEventNum(this.eventData.no)) {
// TODO ²èÁü¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Image ·¿¤ÎÊÑ¿ô¤òÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ EventDataDetail ¥¯¥é¥¹¤Ë¤¢¤ë eventSprite ¤òÂåÆþ¤¹¤ë
// ¥¯¥ê¥¢Ã£À®»þ¤Î²ñÏÃ¥¤¥Ù¥ó¥È
yield return StartCoroutine(PlayTalkEventProgress(this.eventData.eventDataDetailsList.Find(x => x.eventProgressType == EventProgressType.Get).dialogs));
// ¥¢¥¤¥Æ¥à³ÍÆÀ
yield return StartCoroutine(GetEventItems(this.eventData.eventDataDetailsList.Find(x => x.eventProgressType == EventProgressType.Get)));
// ²ñÏÃ¥¤¥Ù¥ó¥È¤Î¥¯¥ê¥¢¾õÂÖ¤òÊݸ
GameData.instance.AddClearTalkEventNum(this.eventData.no);
// ¥¢¥¤¥Æ¥à¤ò¾ÃÌפ¹¤ë¥¤¥Ù¥ó¥È¤Î¾ì¹ç
if (talkEventDataDetail.eventProgressType == EventProgressType.Need) {
// ¾ÃÌ×Âоݤò¤¹¤Ù¤Æ³Îǧ
for (int i = 0; i < talkEventDataDetail.eventItemNames.Length; i++) {
// TODO ʬ´ô¤òºîÀ®¤·¡¢¤ª¶â¤«¡¢¥¢¥¤¥Æ¥à¤ò¸º»»¤¹¤ë¤è¤¦¤Ë¤¹¤ë
if (talkEventDataDetail.eventItemNames[i] == ItemName.¤ª¶â) {
// ¤ª¶â¤ò¸º»»
GameData.instance.CalculateMoney(-talkEventDataDetail.eventItemCounts[i]);
} else {
// ¥¢¥¤¥Æ¥à¤ò¸º»»
GameData.instance.RemoveItemInventryData(talkEventDataDetail.eventItemNames[i], talkEventDataDetail.eventItemCounts[i]);
}
}
}
// ¥¯¥ê¥¢¤·¤¿²ñÏÃ¥¤¥Ù¥ó¥È¤ò¥»¡¼¥Ö
GameData.instance.SaveClearTalkEventNum(this.eventData.no);
// ¥¤¥ó¥Ù¥ó¥È¥ê¤Î¾õÂÖ¤ò¥»¡¼¥Ö
GameData.instance.SaveItemInventryDatas();
// TODO ¤ª¶â¤ä·Ð¸³ÃͤΥ»¡¼¥Ö
}
// ¥¯¥ê¥¢¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¾ì¹ç
} else {
// TODO ²èÁü¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Image ·¿¤ÎÊÑ¿ô¤òÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤¤Æ¡¢ EventDataDetail ¥¯¥é¥¹¤Ë¤¢¤ë eventSprite ¤òÂåÆþ¤¹¤ë
// ¥¯¥ê¥¢Á°¤Î²ñÏÃ¥¤¥Ù¥ó¥È
yield return StartCoroutine(PlayTalkEventProgress(talkEventDataDetail.dialogs));
}
}
}
}
////* ¤³¤³¤Þ¤Ç *////
// ²ñÏÃ¥¤¥Ù¥ó¥È½ªÎ»
isTalk = false;
// Dialog ¤òÊĤ¸¤ë
nonPlayerCharacter.StopTalk();
}
/// <summary>
/// ¥À¥¤¥¢¥í¥°¤ÎÈóɽ¼¨
/// </summary>
public void HideDialog() {
if (isTalk) {
return;
}
canvasGroup.DOFade(0.0f, 0.5f);
txtDialog.text = "";
}
////* ¤³¤³¤«¤é¥á¥½¥Ã¥É¤ÎÌá¤êÃͽ¤Àµ *////
¡¡¡¡/// <summary>
/// õº÷Âоݤò³ÍÆÀ
/// </summary>
/// <param name="eventData"></param>
/// <param name="treasureBox"></param>
/// <returns></returns>
public IEnumerator DisplaySearchDialog(EventData eventData, TreasureBox treasureBox) {¡¡¡¡¡¡¡¡//¡¡<=¡¡Ìá¤êÃͤòÊѹ¹¤·¤Þ¤¹¡£
////* ¤³¤³¤Þ¤Ç *////
¡¡¡¡¡¡¡¡// ²ñÏÃ¥¦¥¤¥ó¥É¥¦¤òɽ¼¨
canvasGroup.DOFade(1.0f, 0.5f);
¡¡¡¡¡¡¡¡// ¥¿¥¤¥È¥ë¤Ëõº÷ʪ¤Î̾¾Î¤òɽ¼¨
txtTitleName.text = eventData.title;
////* ¤³¤³¤«¤é½èÍý¤ò½¤Àµ *////
// ¥¢¥¤¥Æ¥à³ÍÆÀ
//GetEventItems(eventData));¡¡¡¡¡¡¡¡//¡¡<=¡¡²¼µ¤Î½èÍý¤Ë½ñ¤Âؤ¨¤Þ¤¹
¡¡¡¡¡¡¡¡// ¥¢¥¤¥Æ¥à³ÍÆÀ(¥³¥ë¡¼¥Á¥ó¤Î¸Æ¤Ó½Ð¤·¤ËÊѹ¹¤·¤Þ¤¹) ¤³¤Î½èÍý¤¬½ªÎ»¤·¤Æ¥¢¥¤¥Æ¥à¤ò¤¹¤Ù¤Æ³ÍÆÀ¤¹¤ë¤Þ¤Ç¡¢²¼¤Î½èÍý¤Ë¤Ï¤¤¤«¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹
yield return StartCoroutine(GetEventItems(eventData.eventDataDetailsList[0]));
// ¥À¥¤¥¢¥í¥°¤òÊĤ¸¤ë
treasureBox.CloseTreasureBox();
////* ¤³¤³¤Þ¤Ç *////
// ³ÍÆÀ¤·¤¿ÊõÈ¢¤ÎÈÖ¹æ¤ò GameData ¤ËÄɲÃ
GameData.instance.AddSearchEventNum(treasureBox.treasureEventNo);
// ³ÍÆÀ¤·¤¿ÊõÈ¢¤ÎÈÖ¹æ¤ò¥»¡¼¥Ö
GameData.instance.SaveSearchEventNum(treasureBox.treasureEventNo);
// ½ê»ý¤·¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤Î¥»¡¼¥Ö
GameData.instance.SaveItemInventryDatas();
// TODO ¤ª¶â¤ä·Ð¸³ÃͤΥ»¡¼¥Ö
}
////* ¤³¤³¤«¤é¥á¥½¥Ã¥É¤ÎÌá¤êÃͤȰú¿ô¡¢½èÍýÆâÍƤò½¤Àµ *////
/// <summary>
/// ¥¢¥¤¥Æ¥à³ÍÆÀ
/// </summary>
/// <param name="eventDataDetail"></param>
private IEnumerator GetEventItems(ventData.EventDataDetail eventDataDetail) {¡¡¡¡¡¡¡¡//¡¡<=¡¡Ìá¤êÃͤȰú¿ô¤òÊѹ¹¤·¤Þ¤¹¡£
// ³ÍÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤Î̾Á°¤È¿ô¤òɽ¼¨
¡¡¡¡¡¡¡¡//txtDialog.text = eventData.eventItemName.ToString() + " ¡ß " + eventData.eventItemCount + " ³ÍÆÀ";¡¡¡¡¡¡//¡¡<=¡¡¡ù¡¡¡½èÍý¤ò½¤Àµ¤¹¤ë¤¿¤á¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤«ºï½ü¤·¤Þ¤¹
// GameData ¤Ë¥Ç¡¼¥¿¤òÅÐÏ¿¡¡=¡¡¤³¤ì¤¬¥¢¥¤¥Æ¥à³ÍÆÀ¤Î¼Â½èÍý
//GameData.instance.AddItemInventryData(eventData.eventItemName, eventData.eventItemCount);¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡//¡¡<=¡¡¡ù¢¡¡½èÍý¤ò½¤Àµ¤¹¤ë¤¿¤á¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤«ºï½ü¤·¤Þ¤¹
¡¡¡¡¡¡¡¡//¡¡¤³¤³¤«¤é½èÍý¤òÄɲÃ
¡¡¡¡¡¡¡¡// ³ÍÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤Î¼ïÎàʬ¤À¤±·«¤êÊÖ¤¹
¡¡¡¡¡¡¡¡for (int i = 0; i < eventDataDetail.eventItemNames.Length; i++) {
bool isClick = false;
¡¡¡¡¡¡¡¡¡¡¡¡// ³ÍÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤Î̾Á°¤È¿ô¤òɽ¼¨
txtDialog.DOText(eventDataDetail.eventItemNames[i].ToString() + " ¡ß " + eventDataDetail.eventItemCounts[i] + " ³ÍÆÀ", 1.0f).SetEase(Ease.Linear).OnComplete(() => { isClick = true; });
¡¡¡¡¡¡¡¡¡¡¡¡// ³ÍÆÀ¤·¤¿¼ïÎà¤Çʬ´ô
if (eventDataDetail.eventItemNames[i] == ItemName.¤ª¶â) {
// TODO ¤ª¶â¤Î²Ã»»½èÍý
GameData.instance.CalculateMoney(eventDataDetail.eventItemCounts[i]);
} else if (eventDataDetail.eventItemNames[i] == ItemName.·Ð¸³ÃÍ) {
// TODO ·Ð¸³Ãͤβû»½èÍý
} else {
// ¥¢¥¤¥Æ¥à³ÍÆÀ
GameData.instance.AddItemInventryData(eventDataDetail.eventItemNames[i], eventDataDetail.eventItemCounts[i]);
}
// ¥¢¥¯¥·¥ç¥ó¥Ü¥¿¥ó¤ò²¡¤¹¤È¼¡¤Î¥á¥Ã¥»¡¼¥¸É½¼¨
yield return new WaitUntil(() => Input.GetButtonDown("Action") && isClick);
txtDialog.text = "";
yield return null;
}
////* ¤³¤³¤Þ¤Ç *////
}
/// <summary>
/// ²ñÏÃ¥¤¥Ù¥ó¥È¤Î¥á¥Ã¥»¡¼¥¸ºÆÀ¸¤È¥Ú¡¼¥¸Á÷¤ê
/// </summary>
/// <param name="dialogs"></param>
/// <returns></returns>
private IEnumerator PlayTalkEventProgress(string[] dialogs) {
bool isClick = false;
// Ê£¿ô¤Î¥á¥Ã¥»¡¼¥¸¤ò½çÈÖ¤Ëɽ¼¨
foreach (string dialog in dialogs) {
Debug.Log(dialog);
isClick = false;
// £±¥Ú¡¼¥¸Ê¬¤Îʸ»ú¤ò¡¢£±Ê¸»úÅö¤¿¤ê 0.1 É交Ĥ«¤±¤ÆÅù®¤Çɽ¼¨¡£É½¼¨½ªÎ»¸å¡¢isClick ¤ò true ¤Ë¤·¤Æʸ»ú¤¬Á´Ê¸É½¼¨¤µ¤ì¤¿¾õÂ֤ˤ¹¤ë
txtDialog.DOText(dialog, dialog.Length * wordSpeed).SetEase(Ease.Linear).OnComplete(() => { isClick = true; });
// £±¥Ú¡¼¥¸¤Îʸ»ú¤¬Á´Ê¸É½¼¨¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤«¤Ä¡¢¥¢¥¯¥·¥ç¥ó¥Ü¥¿¥ó¤ò²¡¤¹¤È¼¡¤Î¥á¥Ã¥»¡¼¥¸É½¼¨¡£¤½¤ì¤Þ¤Ç¤Ï½èÍý¤òÃæÃǤ·¤ÆÂÔµ¡¤¹¤ë
yield return new WaitUntil(() => Input.GetButtonDown("Action") && isClick);
// ¼¡¤Î¥Ú¡¼¥¸¤Î¤¿¤á¤Ë¡¢¸½ºßɽ¼¨¤µ¤ì¤Æ¤¤¤ëʸ»ú¤ò¾Ãµî
txtDialog.text = "";
yield return null;
}
}
}
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£