Ejemplo n.º 1
0
/// <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)); // 稼働型の会話イベントのウインドウを表示する
        }
    }
Ejemplo n.º 2
0
    /// <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("会話ウインドウを開く");
    }
Ejemplo n.º 3
0
 /// <summary>
 /// 固定型の会話ウインドウを表示
 /// </summary>
 /// <param name="eventData"></param>
 public void OpenTalkWindow(EventData eventData, NonPlayerCharacter nonPlayerCharacter)
 {
     StartCoroutine(dialogController.DisplayDialog(eventData, nonPlayerCharacter));
 }