我想使用带有onclick事件的脚本,但是每当我将其拖到Unity时,都看不到在该脚本中设置的功能。我只能看到defaultasset函数,其他脚本多次发生在我身上,这可能是什么问题? 抱歉,这是一个愚蠢的问题。我是Unity和C#的新手。
我想使用脚本中的此功能:
public void OpenPDF(string PDFNameWithExtension)
{
StartCoroutine(SaveTemplatePDF(PDFNameWithExtension, "application/pdf"));
}
如果有帮助,请使用完整脚本。您可以看到,它只是打开pdf或图像的脚本:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityAndroidOpenUrl;
using UnityEngine;
public class DemoScript : MonoBehaviour
{
private const string MAIN_DIR = "/storage/emulated/0";
private const string testFolderName = "TotalPower";
// private const string PDFName = "template.pdf";
private static string pathToTestFolder;
private static string pathToTemplatePDF;
private void Start()
{
pathToTestFolder = Path.Combine(MAIN_DIR, testFolderName);
if (!Directory.Exists(pathToTestFolder))
{
Directory.CreateDirectory(pathToTestFolder);
}
}
public void OpenPDF(string PDFNameWithExtension)
{
StartCoroutine(SaveTemplatePDF(PDFNameWithExtension, "application/pdf"));
}
public void OpenImage(string imageNameWithExtension)
{
StartCoroutine(SaveTemplatePDF(imageNameWithExtension, "application/png"));
}
private IEnumerator SaveTemplatePDF(string PDFName, string dataType)
{
string localPathToTemplatePDF = Path.Combine(Application.streamingAssetsPath, PDFName);
WWW www = new WWW(localPathToTemplatePDF);
yield return www;
if (!string.IsNullOrEmpty(www.error))
{
Debug.LogError("Error while loading template PDF: " + www.error);
yield break;
}
pathToTemplatePDF = Path.Combine(pathToTestFolder, PDFName);
File.WriteAllBytes(pathToTemplatePDF, www.bytes);
AndroidOpenUrl.OpenFile(pathToTemplatePDF, dataType);
}
}
答案 0 :(得分:0)
我使用在github上找到的以下插件解决了这个问题:https://github.com/Mihail5412/Unity-Android-Files-Opener
我的项目缺少AndroidOpenUrl.cs,这就是为什么它不起作用
这些脚本也不应位于StreamingAssets文件夹内,而应仅位于要显示的文件内