【问题标题】:Calling a script from NPCs in Unity to trigger dialogue在 Unity 中从 NPC 调用脚本以触发对话
【发布时间】:2018-04-06 01:53:34
【问题描述】:

我在 Youtube (https://www.youtube.com/watch?v=_nRzoTzeyxU) 上关注了关于如何为游戏创建对话系统的 Brackeys 教程。我目前正在尝试使该系统适应玩家可以走到 NPC 并按“提交”按钮访问他们的对话,而不是像视频显示的那样单击画布/UI 上的按钮。玩过《超​​级马里奥64》、《塞尔达传说:时之笛》等游戏的人,或者大多数带有文字对话的游戏的人,你可能会认出这一点。

我创建的 Interactable 脚本检测玩家是否在 NPC 拥有的碰撞范围内,并允许玩家在应该调用范围内 NPC 对话的内容上按下“提交”按钮。我只是不知道如何调用我命名为 DialogueTrigger 的脚本来保存 NPC 的对话。那,或者我想要完成的事情并没有以我正在尝试的方式来完成。任何帮助,将不胜感激。

可交互脚本:`

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Interactable : MonoBehaviour {

private GameObject triggeringNpc;
private bool triggering;
public DialogueTrigger Diag;


void Start()
{

}   


void Update() 

{



    if(triggering)
        {
        Debug.Log("Within Range");



            if (Input.GetButtonDown("Submit"))

                {
                    Debug.Log("Pressed the Interact Button");
                    Diag.TriggerDialogue();


                }
        }
}
void OnTriggerEnter(Collider other)
{
    if(other.tag == "NPC")
    {
        triggering = true;
        triggeringNpc = other.gameObject;
    }

}

void OnTriggerExit(Collider other)
{
    if(other.tag == "NPC")
    {
        triggering = false;
        triggeringNpc = null;
    }
  }
}

`

现在我可以在脚本中为一个 NPC 编写脚本并且它可以工作,但我宁愿它调用 NPC 拥有的任何对话触发脚本。我确定我在这里缺少一些东西。

这个是对话触发的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DialogueTrigger : MonoBehaviour 

{



public Dialogue dialogue;

public void TriggerDialogue ()
{
    FindObjectOfType<DialogueManager>().StartDialogue(dialogue);

    Debug.Log("dm called"); } else { Debug.Log("dm is null"); }
  }
}

【问题讨论】:

  • 我一发布就解决了这个问题。结果我只需要将 Interactable 脚本与对话触发脚本结合起来,并重新排列碰撞标签以击中标记为“玩家”的玩家,而不是使用单独的脚本来检测与 NPC 的碰撞。
  • 您应该将此作为答案发布,以便其他人可以更轻松地看到它。

标签: c# unity3d


【解决方案1】:

我一发布就解决了这个问题。事实证明,我只需要将 Interactable 脚本与对话触发脚本结合起来,并重新排列碰撞标签以击中被标记为“玩家”的玩家,而不是让单独的脚本检测到与 NPC 的碰撞。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多