1. 程式人生 > >Unity解決dll庫匯入新專案時路徑不存在的問題

Unity解決dll庫匯入新專案時路徑不存在的問題

程式碼如下:

using UnityEngine;
using System.Collections;
using System;
using System.IO;

public class MyPluginClass
{
    static public void SetPluginPath()
    {
        
        Debug.Log("MyPluginClass: " + Application.dataPath);
        string currentPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process);

#if UNITY_5
#if UNITY_EDITOR_32
        string dllPath = Application.dataPath
        + Path.AltDirectorySeparatorChar + "Plugins"
        + Path.AltDirectorySeparatorChar + "x86";
#elif UNITY_EDITOR_64
        string dllPath = Application.dataPath
        + Path.AltDirectorySeparatorChar + "Plugins"
        + Path.AltDirectorySeparatorChar + "x86_64";
#else //build runtime
        string dllPath = Application.dataPath
        + Path.AltDirectorySeparatorChar + "Plugins";
#endif
#else

#if UNITY_EDITOR
        string dllPath = Application.dataPath
        + Path.AltDirectorySeparatorChar + "Plugins"
        + Path.AltDirectorySeparatorChar + "x86";
#else
      string dllPath = Application.dataPath
        + Path.AltDirectorySeparatorChar + "Plugins";
#endif
#endif
        // Debug.Log("MyPluginClass: " + currentPath + Path.PathSeparator + dllPath);
        //string str = currentPath.Remove(currentPath.LastIndexOf(':')-2);
        //Environment.SetEnvironmentVariable("PATH", str, EnvironmentVariableTarget.Process);
        if (currentPath.Contains(dllPath) == false)
        {
            Environment.SetEnvironmentVariable("PATH", currentPath + Path.PathSeparator + dllPath, EnvironmentVariableTarget.Process);
        }
        else
        {
            Debug.Log("dll path existing!!");
            Debug.Log("currentPath: " + currentPath);
        }
    }

}