mirror of
https://github.com/Dadechin/Unity-WebSocket.git
synced 2025-07-03 20:04:33 +00:00
57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
#if UNITY_EDITOR
|
|
using System;
|
|
using System.IO;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace FishNet.Editing
|
|
{
|
|
/* When you import playeveryware's EOS asset, it force installs NGO, which creates
|
|
* a lot of issues for anyone not using NGO. This script will block the force installation. */
|
|
public class ForceInstallPreventor : AssetPostprocessor
|
|
{
|
|
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
|
|
{
|
|
// No need to continue if nothing was imported.
|
|
if (importedAssets == null || importedAssets.Length == 0)
|
|
return;
|
|
|
|
EditorApplication.LockReloadAssemblies();
|
|
|
|
foreach (string path in importedAssets)
|
|
CheckTargetPath(path);
|
|
|
|
/* We don't have a way to know if the user intentionally
|
|
* had domain locked so we just have to unlock it and hope
|
|
* we aren't messing up users settings.
|
|
*
|
|
* Worse case scenario this will only happen when the forceware
|
|
* is removed.
|
|
*
|
|
* There is a 'didDomainReload' boolean override for this
|
|
* method, but it does not seem to reflect the information
|
|
* we need.
|
|
* */
|
|
EditorApplication.UnlockReloadAssemblies();
|
|
}
|
|
|
|
private void OnPreprocessAsset()
|
|
{
|
|
CheckTargetPath(assetImporter.assetPath);
|
|
}
|
|
|
|
private static void CheckTargetPath(string path)
|
|
{
|
|
if (!path.Contains("PackageInstallHelper_Netcode", StringComparison.CurrentCultureIgnoreCase))
|
|
return;
|
|
|
|
try
|
|
{
|
|
File.Delete(path);
|
|
Debug.Log($"Fish-Networking prevented PlayEveryWare from forcefully installing Netcode for GameObjects.");
|
|
}
|
|
finally { }
|
|
}
|
|
}
|
|
}
|
|
#endif |