为什么我在Unity中的脚本中看不到功能?

时间:2020-07-22 12:05:45

标签: c# unity3d

我想使用带有onclick事件的脚本,但是每当我将其拖到Unity时,都看不到在该脚本中设置的功能。我只能看到defaultasset函数,其他脚本多次发生在我身上,这可能是什么问题? 抱歉,这是一个愚蠢的问题。我是Unity和C#的新手。

enter image description here

我想使用脚本中的此功能:

 public void OpenPDF(string PDFNameWithExtension)
    {
        StartCoroutine(SaveTemplatePDF(PDFNameWithExtension, "application/pdf"));
    }   

enter image description here

资产是流资产的父目录 enter image description here

如果有帮助,请使用完整脚本。您可以看到,它只是打开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);
    }
}

1 个答案:

答案 0 :(得分:0)

我使用在github上找到的以下插件解决了这个问题:https://github.com/Mihail5412/Unity-Android-Files-Opener

我的项目缺少AndroidOpenUrl.cs,这就是为什么它不起作用

这些脚本也不应位于StreamingAssets文件夹内,而应仅位于要显示的文件内