Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,90 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Rider.Editor.Util;
|
||||
using UnityEngine;
|
||||
using Debug = UnityEngine.Debug;
|
||||
|
||||
namespace Packages.Rider.Editor
|
||||
{
|
||||
internal class RiderInitializer
|
||||
{
|
||||
public void Initialize(string editorPath)
|
||||
{
|
||||
var assembly = EditorPluginInterop.EditorPluginAssembly;
|
||||
if (EditorPluginInterop.EditorPluginIsLoadedFromAssets(assembly))
|
||||
{
|
||||
Debug.LogError($"Please delete {assembly.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;
|
||||
}
|
||||
|
||||
// for debugging rider editor plugin
|
||||
if (RiderPathUtil.IsRiderDevEditor(editorPath))
|
||||
{
|
||||
LoadEditorPluginForDevEditor(editorPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
var relPath = "../../plugins/rider-unity/EditorPlugin";
|
||||
if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX)
|
||||
relPath = "Contents/plugins/rider-unity/EditorPlugin";
|
||||
var baseDir = Path.Combine(editorPath, relPath);
|
||||
var dllFile = new FileInfo(Path.Combine(baseDir, $"{EditorPluginInterop.EditorPluginAssemblyName}.dll"));
|
||||
|
||||
if (!dllFile.Exists)
|
||||
dllFile = new FileInfo(Path.Combine(baseDir,
|
||||
$"{EditorPluginInterop.EditorPluginAssemblyNameFallback}.dll"));
|
||||
|
||||
if (dllFile.Exists)
|
||||
{
|
||||
var bytes = File.ReadAllBytes(dllFile.FullName);
|
||||
assembly = AppDomain.CurrentDomain.Load(bytes); // doesn't lock assembly on disk
|
||||
if (PluginSettings.SelectedLoggingLevel >= LoggingLevel.TRACE)
|
||||
Debug.Log($"Rider EditorPlugin loaded from {dllFile.FullName}");
|
||||
|
||||
EditorPluginInterop.InitEntryPoint(assembly);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"Unable to find Rider EditorPlugin {dllFile.FullName} for Unity ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void LoadEditorPluginForDevEditor(string editorPath)
|
||||
{
|
||||
var file = new FileInfo(editorPath);
|
||||
if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX)
|
||||
file = new FileInfo(Path.Combine(editorPath, "rider-dev.bat"));
|
||||
|
||||
if (!file.Exists)
|
||||
{
|
||||
Debug.Log($"Unable to determine path to EditorPlugin from {file}");
|
||||
return;
|
||||
}
|
||||
|
||||
var dllPath = File.ReadLines(file.FullName).FirstOrDefault();
|
||||
|
||||
if (dllPath == null)
|
||||
{
|
||||
Debug.Log($"Unable to determine path to EditorPlugin from {file}");
|
||||
return;
|
||||
}
|
||||
|
||||
var dllFile = new FileInfo(dllPath);
|
||||
|
||||
if (!dllFile.Exists)
|
||||
{
|
||||
Debug.Log($"Unable to find Rider EditorPlugin {dllPath} for Unity ");
|
||||
return;
|
||||
}
|
||||
|
||||
var assembly = AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(dllFile.FullName));
|
||||
if (PluginSettings.SelectedLoggingLevel >= LoggingLevel.TRACE)
|
||||
Debug.Log($"Rider EditorPlugin loaded from {dllFile.FullName}");
|
||||
|
||||
EditorPluginInterop.InitEntryPoint(assembly);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue