/// <summary> /// 会話開始 /// </summary> /// <param name="playerPos"></param> public void PlayTalk(Vector3 playerPos, PlayerController playerController) { if (this.playerController == null) { this.playerController = playerController; } // 会話イベントを行っている状態にする isTalking = true; if (playerPos.y < transform.position.y) // プレイヤーがNPCの位置より下にいる場合 { dialogController.transform.position = offsetPos; // 会話ウィンドウを-3.0fの位置に表示 } else // NPCより上にいる場合 { dialogController.transform.position = defaultPos; // 会話ウィンドウを元の位置に表示 } // 設定されている会話ウインドウの種類に合わせて、開く会話ウインドウを分岐させる if (isFixedTalkWindowUsing) { uiManager.OpenTalkWindow(eventData, this); // 固定型の会話ウインドウを表示する } else { StartCoroutine(dialogController.DisplayDialog(eventData, this)); // 稼働型の会話イベントのウインドウを表示する } }
/// <summary> /// 会話開始 /// </summary> public void PlayTalk(Vector3 playerPos) // Vector3型のplayerPosの引数 { // 会話イベントを行っている状態にする isTalking = true; //プレイヤーの位置を確認してウインドウを出す位置を決定する //プレイヤーの位置をPlayerController スクリプトより、プレイヤーキャラの位置情報が Vector3 型で届いてるため //playerPos.yの位置よりNPCのポジションが上の場合にif文を通る。NPCのポジションが上の場合はdialogController.transform.position //に代入された(offsetPos)の値を参考にしてウインドウを表示する。それ以外の場合は、(defaltPos)を参考にしてウインドウを表示する。 if (playerPos.y < transform.position.y) //playerPos.yがtransform.position.yより小さい時 { //dialogController.transform.positionにoffsetPosを代入 dialogController.transform.position = offsetPos; } else { //それ以外の場合は、dialogController.transform.positionにdefaltPosを代入 dialogController.transform.position = defaltPos; } // 会話イベントのウインドウを表示する dialogController.DisplayDialog(eventData); //Debug.Log("会話ウインドウを開く"); }
/// <summary> /// 固定型の会話ウインドウを表示 /// </summary> /// <param name="eventData"></param> public void OpenTalkWindow(EventData eventData, NonPlayerCharacter nonPlayerCharacter) { StartCoroutine(dialogController.DisplayDialog(eventData, nonPlayerCharacter)); }