【发布时间】:2014-07-24 23:33:45
【问题描述】:
我正在尝试在 Unity 中的两个类之间传递一个字符串。通常我会将字符串设为静态并直接访问它,但是,我需要在 Unity 检查器中修改此字符串,如果我将其设置为静态,我将无法执行此操作。
我之前使用过一两次 get 和 set,但已经有一段时间了,我已经生疏了。所以,我在设置字符串的类中设置了这样的代码:
public string pdfString;
private string pdfInstance;
public string PDF { get { return pdfInstance; } }
void Start()
{
UI.SetActive(false);
pdfInstance = pdfString;
}
Public pdfString 是我在检查器中设置的。我创建了私有字符串,因为我认为获取值在传递公共字符串时存在问题。我对此进行了测试,并且私有返回了正确的字符串。
现在,在我试图传递字符串的课程中,我做了以下事情:
public string pdfFile = "";
private SetSelectedInfo pdf;
void Start ()
{
pdf = new SetSelectedInfo();
}
// Update is called once per frame
void Update () {
pdfFile = pdf.PDF;
}
public void OpenPDFFile()
{
System.Diagnostics.Process.Start(Application.dataPath + "/PDFS/" + pdfFile);
}
当我调试出pdfFile 值时,它返回一个空值。有人能看出我在设置时做错了什么吗?
【问题讨论】:
-
什么是
pdfFile?你还没有在任何地方声明过。 -
尝试使用单例模式。问题是 pdf.PDF 将不是同一个对象。
-
糟糕,忘记发了。它是公开的,因此我可以查看检查器中是否有任何内容传递给它。
-
当你设置
pdf = new SetSelectedInfo();是在创建一个新的PDF文档吗? -
据我所知,没有。 PDF 文档保存在一个文件夹中,当我单击该按钮时程序会打开该文件夹。我需要的是能够根据点击的内容打开多个 PDF。以上是我能想到的唯一方法。