我正在用Unity制作一款带有对话框的游戏,并制作了一个脚本用于将对话框放在屏幕上,另一个脚本用于将实际文本放在对话框上。我必须在第二个脚本中使用第一个脚本中的一个函数才能使其工作。然而,问题是,当我试图引用第一个脚本时,它总是出现错误。
错误信息是:Assetsscripts dialguemanager .cs(29,18):错误CS1061: ' dialguemanager '不包含'ShowBox'的定义,并且没有可访问的扩展方法'ShowBox'接受类型' dialguemanager '的第一个参数可以找到(您是否缺少using指令或汇编引用?)
第一个代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class dialogueManager : MonoBehaviour
{
public GameObject dialogueBox;
public Text dialogueText;
public bool activeDialogue;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (activeDialogue == true && Input.GetKeyDown(KeyCode.Return))
{
dialogueBox.SetActive(false);
activeDialogue = false;
}
}
public void ShowBox(string lines)
{
activeDialogue = true
dialogueBox.SetActive(true);
dialogueText.text = lines;
}
}
第二个代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class dialogueHolder : MonoBehaviour
{
public string dialogue;
private dialogueManager dMan;
public GameObject Manager;
// Start is called before the first frame update
void Start()
{
dMan = Manager.GetComponent<dialogueManager>();
}
// Update is called once per frame
void Update()
{
}
void OnTriggerStay2D(Collider2D other)
{
if(other.gameObject.name=="Shadow")
{
if(Input.GetKeyDown(KeyCode.Return))
dMan.ShowBox(dialogue);
}
}
}
我可以清楚地看到,我试图从第一个脚本访问的ShowBox函数是问题。但我不知道该怎么用代码让它工作。我已经尝试了不同的方法来尝试和引用类dialog。举个例子,我尝试在游戏或脚本中单独引用实际的游戏对象,但我似乎无法让它工作。如果我删除ShowBox函数,代码将运行,但我需要ShowBox函数来实际使我的游戏中的对话框工作,所以这不是一个解决方案。
activedialog = true;也许你应该加上";;在这之后