1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using UnityEngine;
- namespace Packages.Rider.Editor
- {
- internal class RiderInitializer
- {
- public void Initialize(string editorPath)
- {
- if (EditorPluginInterop.EditorPluginIsLoadedFromAssets())
- {
- Debug.LogError($"Please delete {EditorPluginInterop.GetEditorPluginAssembly().Location}. Unity 2019.2+ loads it directly from Rider installation. To disable this, open Rider's settings, search and uncheck 'Automatically install and update Rider's Unity editor plugin'.");
- return;
- }
- var dllName = "JetBrains.Rider.Unity.Editor.Plugin.Full.Repacked.dll";
- var relPath = "../../plugins/rider-unity/EditorPlugin";
- if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX)
- relPath = "Contents/plugins/rider-unity/EditorPlugin";
- var dllFile = new FileInfo(Path.Combine(Path.Combine(editorPath, relPath), dllName));
- if (dllFile.Exists)
- {
-
- var bytes = File.ReadAllBytes(dllFile.FullName);
- var pdbFile = new FileInfo(Path.ChangeExtension(dllFile.FullName, ".pdb"));
- if (pdbFile.Exists)
- {
- AppDomain.CurrentDomain.Load(bytes, File.ReadAllBytes(pdbFile.FullName));
- }
- else
- {
- AppDomain.CurrentDomain.Load(bytes);
-
- }
- EditorPluginInterop.InitEntryPoint();
- }
- else
- {
- Debug.Log((object) ($"Unable to find Rider EditorPlugin {dllFile.FullName} for Unity "));
- }
- }
- }
- }
|