Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Voting for the Unity Awards are OPEN! We’re looking to celebrate creators across games, industry, film, and many more categories. Cast your vote now for all categories
    Dismiss Notice
  3. Dismiss Notice

Code Enchanter - Micro optimizations for C# scripts

Discussion in 'Assets and Asset Store' started by MerryYellow, Sep 8, 2018.

  1. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Notice: This forum thread is no longer maintained and might contain out-of-date information. Please visit official website to get the details about the asset Code Enchanter.
    Code Enchanter aims to improve your application's performance and memory usage by enchanting your code. It automatically implements tips and guides from makers of Unity and game development professionals from all around the world. It searches all of C# script files to find a room for improvement and makes minor changes to your code while preserving your code style and comments to make the code more CPU and memory friendly.

    Code Enchanter takes on a lot of mundane and non-creative work so you can focus on what's important. No programming skill is needed, one click will make your code better. It is strongly recommended for non-programmers, mobile & VR developers and novice users.






    Enchantments

    List of current enchantments, more will be added with the upcoming releases

    • Tag: Converts operator tag comparison to method one. This will result in one less string object creation, less work for garbage collector, better cpu and memory performance. References: * *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     void Update () {
    4.         bool hasTag = this.tag == "myTag";
    5.     }
    6. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     void Update () {
    4.         bool hasTag = this.CompareTag("myTag");
    5.     }
    6. }

    • Method: Comments out empty callback methods. This will make fewer context switch between native and managed code, better cpu performance. References: **
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     void Update () {
    4.     }
    5. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     //void Update () {
    4.     //}
    5. }

    • Destructor: Comments out empty destructors. This will result in one less finalizer call, less work for garbage collector, better cpu performance. References: *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     ~NewBehaviourScript(){
    4.     }
    5. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     //~NewBehaviourScript(){
    4.     //}
    5. }

    • ForEach: Converts foreach loops to for loops. This is intended for Unity versions 5.4 and lower. These old versions were allocating extra memory with foreach loops, but not with for loops. So this will make less memory and garbage collector usage, better cpu and memory performance. This is disabled by default if Unity version is 5.5 or higher (Also Code Enchanter will support older versions with the upcoming releases as well). References: *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     public List<int> myList = new List<int>();
    4.  
    5.     void Update() {
    6.         var sum = 0;
    7.         foreach (var i in myList) {
    8.             sum += i;
    9.         }
    10.     }
    11. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     public List<int> myList = new List<int>();
    4.  
    5.     void Update() {
    6.         var sum = 0;
    7.         for (var indexOfMyList = 0; indexOfMyList < myList.Count; indexOfMyList++) {
    8.             var i = myList[indexOfMyList];
    9.             sum += i;
    10.         }
    11.     }
    12. }

    • Distance: Converts distance comparisons to squared ones. Property magnitude of Vector2, Vector3 and Vector4 will be replaced with property sqrMagnitude. This will eliminate costy square root operation, better cpu performance. References: *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     Vector3 myVector = Vector3.zero;
    4.  
    5.     void Update () {
    6.         if (myVector.magnitude > 10) {
    7.         }
    8.     }
    9. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.  
    3.     Vector3 myVector = Vector3.zero;
    4.  
    5.     void Update () {
    6.         if (myVector.sqrMagnitude > 10 * 10) {
    7.         }
    8.     }
    9. }

    • StringBuilder: Converts string concatenations to StringBuilder format. String "+=" and "+" operators will be replaced with StringBuilder.Append() or Insert(). This will result in less string object creation, less work for garbage collector, better cpu and memory performance. References: * *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.     List<string> titles;
    3.  
    4.     void Update () {
    5.         var name = "";
    6.         foreach (var title in titles)
    7.             name += title;
    8.     }
    9. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.     List<string> titles;
    3.  
    4.     void Update () {
    5.         var name = "";
    6.         var nameBuilder = new StringBuilder(name);
    7.         foreach (var title in titles)
    8.             nameBuilder.Append(title);
    9.         name = nameBuilder.ToString();
    10.     }
    11. }

    • Reciprocal: Converts division by constant number to multiplication by reciprocal of the constant number. This will replace a costly operation with a cheaper one, better cpu performance. (Reciprocal division is calculated at compile time, no effect during runtime.) References: *
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.     float angle, delta;
    3.  
    4.     void Update () {
    5.         angle += delta / Mathf.PI;
    6.     }
    7. }
    is enchanted to
    Code (CSharp):
    1. public class NewBehaviourScript : MonoBehaviour {
    2.     float angle, delta;
    3.  
    4.     void Update () {
    5.         angle += delta * (1 / Mathf.PI);
    6.     }
    7. }


    Questions and Contact

    You can ask me about anything. Also, any feedback is welcome.
    merryyellow@outlook.com
    or just pm on the forum or reply to this thread.
     
    Last edited: Jul 26, 2019
    zombiegorilla likes this.
  2. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Roadmap
    • Unity editor UI interruption error fix
    • Improve enchantment: Tag, add new methods like CompareTag
    • New enchantment: Cacher, caches multiple usages of costy operations

    Changelog
    Version 1.3
    • Online demo
    • Dependency binaries update

    Version 1.2

    • New enchantment: StringBuilder, which converts string concatenations to StringBuilder format
    • Support for Unity versions 3 and 4
    • Support for Unity version 2018.3 (beta)
    • Stability improvements

    Version 1.1

    • New enchantment: Distance, which converts distance comparisons to squared ones
    • MSBuild version mismatch error fix
    • Unity editor freeze fix
    • Add license for third party software
     
    Last edited: Jul 23, 2019
  3. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    Afraid this fails to start up for me. (Unity 2018.2.7)


    [Failure] Msbuild failed when processing the file 'D:\NKLI\MR\Scratch Pad\Assembly-CSharp.csproj' with message: Invalid static method invocation syntax: "[Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier), $(TargetFrameworkVersion), $(TargetFrameworkProfile), $(PlatformTarget), $(TargetFrameworkRootPath), $(TargetFrameworkFallbackSearchPaths))". Method 'Microsoft.Build.Utilities.ToolLocationHelper.GetPathToStandardLibraries' not found. Static method invocation should be of the form: $([FullTypeName]::Method()), e.g. $([System.IO.Path]::Combine(`a`, `b`)). C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets
    UnityEngine.Debug:LogError(Object)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:MyLog(Level, String) (at Assets/CodeEnchanter/EnchanterEditor.cs:1070)
    MerryYellow.CodeEnchanter.Common.ELogger:Log(Level, String)
    MerryYellow.CodeEnchanter.Common.IOI:Read(TextReader, TextWriter)
    MerryYellow.CodeEnchanter.Common.IOI:Read()
    MerryYellow.CodeEnchanter.Common.IOI:Read(Process)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho_ExecuteProcess() (at Assets/CodeEnchanter/EnchanterEditor.cs:518)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho() (at Assets/CodeEnchanter/EnchanterEditor.cs:583)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:Initialize() (at Assets/CodeEnchanter/EnchanterEditor.cs:936)
    MerryYellow.CodeEnchanter.UnityEnchanterGUI.SimpleWindow:OnGUI() (at Assets/CodeEnchanter/GUI/SimpleWindow.cs:138)
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)



    [Failure] Msbuild failed when processing the file 'D:\NKLI\MR\Scratch Pad\Assembly-CSharp-Editor.csproj' with message: Invalid static method invocation syntax: "[Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier), $(TargetFrameworkVersion), $(TargetFrameworkProfile), $(PlatformTarget), $(TargetFrameworkRootPath), $(TargetFrameworkFallbackSearchPaths))". Method 'Microsoft.Build.Utilities.ToolLocationHelper.GetPathToStandardLibraries' not found. Static method invocation should be of the form: $([FullTypeName]::Method()), e.g. $([System.IO.Path]::Combine(`a`, `b`)). C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets
    UnityEngine.Debug:LogError(Object)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:MyLog(Level, String) (at Assets/CodeEnchanter/EnchanterEditor.cs:1070)
    MerryYellow.CodeEnchanter.Common.ELogger:Log(Level, String)
    MerryYellow.CodeEnchanter.Common.IOI:Read(TextReader, TextWriter)
    MerryYellow.CodeEnchanter.Common.IOI:Read()
    MerryYellow.CodeEnchanter.Common.IOI:Read(Process)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho_ExecuteProcess() (at Assets/CodeEnchanter/EnchanterEditor.cs:518)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho() (at Assets/CodeEnchanter/EnchanterEditor.cs:594)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:Initialize() (at Assets/CodeEnchanter/EnchanterEditor.cs:936)
    MerryYellow.CodeEnchanter.UnityEnchanterGUI.SimpleWindow:OnGUI() (at Assets/CodeEnchanter/GUI/SimpleWindow.cs:138)
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

     
  4. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Hi Ninlilizi,

    I'm aware of this issue. It will be fixed with the next (and the first) update, which will be probably out next week.

    There is an easy way to fix it manually. Copy and paste Microsoft.Build dlls ( which are Microsoft.Build.dll, Microsoft.Build.Framework.dll, Microsoft.Build.Tasks.Core.dll and Microsoft.Build.Utilities.Core.dll ) from Visual Studio MSBuild directory ( C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\ ) to tool plugin directory ( PATH_TO_PROJECT\Assets\CodeEnchanter\Plugins\lib\net46\ )
     
    Last edited: Sep 12, 2018
  5. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    Hey :)

    'fraid that didn't fix the problem but instead changed the trace to this


    [Failure] Msbuild failed when processing the file 'D:\NKLI\MR\Scratch Pad\Assembly-CSharp-Editor.csproj' with message: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets: (1657, 5): The "GetReferenceNearestTargetFrameworkTask" task could not be instantiated from the assembly "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.Build.Tasks.dll". Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'NuGet.Build.Tasks.GetReferenceNearestTargetFrameworkTask' to type 'Microsoft.Build.Framework.ITask'.
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets: (1657, 5): The "GetReferenceNearestTargetFrameworkTask" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name.
    UnityEngine.Debug:LogError(Object)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:MyLog(Level, String) (at Assets/CodeEnchanter/EnchanterEditor.cs:1070)
    MerryYellow.CodeEnchanter.Common.ELogger:Log(Level, String)
    MerryYellow.CodeEnchanter.Common.IOI:Read(TextReader, TextWriter)
    MerryYellow.CodeEnchanter.Common.IOI:Read()
    MerryYellow.CodeEnchanter.Common.IOI:Read(Process)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho_ExecuteProcess() (at Assets/CodeEnchanter/EnchanterEditor.cs:518)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho() (at Assets/CodeEnchanter/EnchanterEditor.cs:583)
    MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:Initialize() (at Assets/CodeEnchanter/EnchanterEditor.cs:936)
    MerryYellow.CodeEnchanter.UnityEnchanterGUI.SimpleWindow:OnGUI() (at Assets/CodeEnchanter/GUI/SimpleWindow.cs:138)
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
     
  6. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Hmm, that's new. Can you also copy and paste System.Collections.Immutable.dll from "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\" to "PATH_TO_PROJECT\Assets\CodeEnchanter\Plugins" .

    If this fails too, it would be very helpful for me if you can provide me "D:\NKLI\MR\Scratch Pad\Assembly-CSharp-Editor.csproj" file and your Visual Studio version.
     
  7. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,772
    Be careful when commenting out empty functions like OnEnable. Doing so will change the order of operation of Awake() scripts.

    Scripts that define OnEnable run Awake before scripts that dont have OnEnable even when it’s empty.
     
  8. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    This fails with the following new error:

    Code (CSharp):
    1. System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
    2.    at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
    3.    at System.Reflection.RuntimeAssembly.get_DefinedTypes()
    4.    at System.Composition.Hosting.ContainerConfiguration.<>c.<WithAssemblies>b__16_0(Assembly a)
    5.    at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
    6.    at System.Composition.TypedParts.TypedPartExportDescriptorProvider..ctor(IEnumerable`1 types, AttributedModelProvider attributeContext)
    7.    at System.Composition.Hosting.ContainerConfiguration.CreateContainer()
    8.    at Microsoft.CodeAnalysis.Host.Mef.MefHostServices.Create(IEnumerable`1 assemblies)
    9.    at Microsoft.CodeAnalysis.Host.Mef.DesktopMefHostServices.get_DefaultServices()
    10.    at MerryYellow.CodeEnchanter.Executable.WorkspaceManagerFW.CreateWorkspace(String solutionPath, String& error)
    11.    at MerryYellow.CodeEnchanter.Executable.Program.Main(String[] args)
    12. UnityEngine.Debug:LogError(Object)
    13. MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:MyLog(Level, String) (at Assets/CodeEnchanter/EnchanterEditor.cs:1070)
    14. MerryYellow.CodeEnchanter.Common.ELogger:Log(Level, String)
    15. MerryYellow.CodeEnchanter.Common.IOI:Read(TextReader, TextWriter)
    16. MerryYellow.CodeEnchanter.Common.IOI:Read()
    17. MerryYellow.CodeEnchanter.Common.IOI:Read(Process)
    18. MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho_ExecuteProcess() (at Assets/CodeEnchanter/EnchanterEditor.cs:518)
    19. MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:ho() (at Assets/CodeEnchanter/EnchanterEditor.cs:583)
    20. MerryYellow.CodeEnchanter.UnityEnchanterEditor.EnchanterEditor:Initialize() (at Assets/CodeEnchanter/EnchanterEditor.cs:936)
    21. MerryYellow.CodeEnchanter.UnityEnchanterGUI.SimpleWindow:OnGUI() (at Assets/CodeEnchanter/GUI/SimpleWindow.cs:138)
    22. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    23.  
    csprog file contents:

    Code (CSharp):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    3.   <PropertyGroup>
    4.     <LangVersion>4</LangVersion>
    5.   </PropertyGroup>
    6.   <PropertyGroup>
    7.     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    8.     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    9.     <ProductVersion>10.0.20506</ProductVersion>
    10.     <SchemaVersion>2.0</SchemaVersion>
    11.     <RootNamespace>
    12.     </RootNamespace>
    13.     <ProjectGuid>{B4642DB6-F7EB-9434-2690-8379625E3108}</ProjectGuid>
    14.     <OutputType>Library</OutputType>
    15.     <AppDesignerFolder>Properties</AppDesignerFolder>
    16.     <AssemblyName>Assembly-CSharp-Editor</AssemblyName>
    17.     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    18.     <FileAlignment>512</FileAlignment>
    19.     <BaseDirectory>.</BaseDirectory>
    20.   </PropertyGroup>
    21.   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    22.     <DebugSymbols>true</DebugSymbols>
    23.     <DebugType>full</DebugType>
    24.     <Optimize>false</Optimize>
    25.     <OutputPath>Temp\bin\Debug\</OutputPath>
    26.     <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_2_7;UNITY_2018_2;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_TEXTURE_STREAMING;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
    27.     <ErrorReport>prompt</ErrorReport>
    28.     <WarningLevel>4</WarningLevel>
    29.     <NoWarn>0169</NoWarn>
    30.     <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
    31.   </PropertyGroup>
    32.   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    33.     <DebugType>pdbonly</DebugType>
    34.     <Optimize>true</Optimize>
    35.     <OutputPath>Temp\bin\Release\</OutputPath>
    36.     <ErrorReport>prompt</ErrorReport>
    37.     <WarningLevel>4</WarningLevel>
    38.     <NoWarn>0169</NoWarn>
    39.     <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
    40.   </PropertyGroup>
    41.   <PropertyGroup>
    42.     <NoConfig>true</NoConfig>
    43.     <NoStdLib>true</NoStdLib>
    44.     <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
    45.     <ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
    46.     <ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
    47.   </PropertyGroup>
    48.   <PropertyGroup>
    49.     <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    50.     <UnityProjectGenerator>Unity/VSTU</UnityProjectGenerator>
    51.     <UnityProjectType>Editor:5</UnityProjectType>
    52.     <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
    53.     <UnityVersion>2018.2.7f1</UnityVersion>
    54.   </PropertyGroup>
    55.   <ItemGroup>
    56.     <Reference Include="UnityEngine">
    57.       <HintPath>C:\Program Files\Unity\Editor\Data\Managed/UnityEngine/UnityEngine.dll</HintPath>
    58.     </Reference>
    59.     <Reference Include="UnityEditor">
    60.       <HintPath>C:\Program Files\Unity\Editor\Data\Managed/UnityEditor.dll</HintPath>
    61.     </Reference>
    62.   </ItemGroup>
    63.   <ItemGroup>
    64.     <Compile Include="Assets\LIVENDA_CTAA_VR\LIVENDA CTAA SPS\Editor\CTAAEditorVRsps.cs" />
    65.     <Compile Include="Assets\LIVENDA_CTAA_VR\LIVENDA CTAA VR OCULUS\Editor\CTAAEditorOculusVR.cs" />
    66.     <Compile Include="Assets\LIVENDA_CTAA_VR\LIVENDA CTAA VR VIVE\Editor\CTAAEditorViveVR.cs" />
    67.     <Compile Include="Assets\LIVENDA_CTAA_VR\LIVENDA_CTAA_PC\Editor\CTAAEditorPC.cs" />
    68.     <Compile Include="Assets\MadGoat-SSAA\Scripts\Editor\MadGoatSSAA_Adv_Editor.cs" />
    69.     <Compile Include="Assets\MadGoat-SSAA\Scripts\Editor\MadGoatSSAA_Editor.cs" />
    70.     <Compile Include="Assets\MadGoat-SSAA\Scripts\Editor\MadGoatSSAA_VR_Editor.cs" />
    71.     <Compile Include="Assets\Oculus\VR\Editor\OVRBuild.cs" />
    72.     <Compile Include="Assets\Oculus\VR\Editor\OVREngineConfigurationUpdater.cs" />
    73.     <Compile Include="Assets\Oculus\VR\Editor\OVRLayerAttributeEditor.cs" />
    74.     <Compile Include="Assets\Oculus\VR\Editor\OVRManifestPreprocessor.cs" />
    75.     <Compile Include="Assets\Oculus\VR\Editor\OVRPluginUpdater.cs" />
    76.     <Compile Include="Assets\Oculus\VR\Editor\OVRPluginUpdaterStub.cs" />
    77.     <Compile Include="Assets\Oculus\VR\Editor\OVRScreenshotWizard.cs" />
    78.     <Compile Include="Assets\Oculus\VR\Scripts\Editor\OVRManagerEditor.cs" />
    79.     <Compile Include="Assets\SEGI\Editor\SEGICascadedEditor.cs" />
    80.     <None Include="Assets\Oculus\VR\Editor\AndroidManifest.OVRSubmission.xml" />
    81.     <Reference Include="UnityEditor.StandardEvents">
    82.       <HintPath>D:/NKLI/MR/Scratch Pad/Library/ScriptAssemblies/UnityEditor.StandardEvents.dll</HintPath>
    83.     </Reference>
    84.     <Reference Include="Unity.TextMeshPro.Editor">
    85.       <HintPath>D:/NKLI/MR/Scratch Pad/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll</HintPath>
    86.     </Reference>
    87.     <Reference Include="Unity.PackageManagerUI.Editor">
    88.       <HintPath>D:/NKLI/MR/Scratch Pad/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll</HintPath>
    89.     </Reference>
    90.     <Reference Include="Unity.TextMeshPro">
    91.       <HintPath>D:/NKLI/MR/Scratch Pad/Library/ScriptAssemblies/Unity.TextMeshPro.dll</HintPath>
    92.     </Reference>
    93.     <Reference Include="UnityEngine.AIModule">
    94.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll</HintPath>
    95.     </Reference>
    96.     <Reference Include="UnityEngine.ARModule">
    97.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll</HintPath>
    98.     </Reference>
    99.     <Reference Include="UnityEngine.AccessibilityModule">
    100.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll</HintPath>
    101.     </Reference>
    102.     <Reference Include="UnityEngine.AnimationModule">
    103.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll</HintPath>
    104.     </Reference>
    105.     <Reference Include="UnityEngine.AssetBundleModule">
    106.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll</HintPath>
    107.     </Reference>
    108.     <Reference Include="UnityEngine.AudioModule">
    109.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll</HintPath>
    110.     </Reference>
    111.     <Reference Include="UnityEngine.BaselibModule">
    112.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll</HintPath>
    113.     </Reference>
    114.     <Reference Include="UnityEngine.ClothModule">
    115.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll</HintPath>
    116.     </Reference>
    117.     <Reference Include="UnityEngine.CloudWebServicesModule">
    118.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll</HintPath>
    119.     </Reference>
    120.     <Reference Include="UnityEngine.ClusterInputModule">
    121.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll</HintPath>
    122.     </Reference>
    123.     <Reference Include="UnityEngine.ClusterRendererModule">
    124.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll</HintPath>
    125.     </Reference>
    126.     <Reference Include="UnityEngine.CoreModule">
    127.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll</HintPath>
    128.     </Reference>
    129.     <Reference Include="UnityEngine.CrashReportingModule">
    130.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll</HintPath>
    131.     </Reference>
    132.     <Reference Include="UnityEngine.DirectorModule">
    133.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll</HintPath>
    134.     </Reference>
    135.     <Reference Include="UnityEngine.FacebookModule">
    136.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.FacebookModule.dll</HintPath>
    137.     </Reference>
    138.     <Reference Include="UnityEngine.FileSystemHttpModule">
    139.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll</HintPath>
    140.     </Reference>
    141.     <Reference Include="UnityEngine.GameCenterModule">
    142.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll</HintPath>
    143.     </Reference>
    144.     <Reference Include="UnityEngine.GridModule">
    145.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll</HintPath>
    146.     </Reference>
    147.     <Reference Include="UnityEngine.HotReloadModule">
    148.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll</HintPath>
    149.     </Reference>
    150.     <Reference Include="UnityEngine.IMGUIModule">
    151.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll</HintPath>
    152.     </Reference>
    153.     <Reference Include="UnityEngine.ImageConversionModule">
    154.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll</HintPath>
    155.     </Reference>
    156.     <Reference Include="UnityEngine.InputModule">
    157.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll</HintPath>
    158.     </Reference>
    159.     <Reference Include="UnityEngine.JSONSerializeModule">
    160.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll</HintPath>
    161.     </Reference>
    162.     <Reference Include="UnityEngine.LocalizationModule">
    163.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll</HintPath>
    164.     </Reference>
    165.     <Reference Include="UnityEngine.ParticleSystemModule">
    166.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll</HintPath>
    167.     </Reference>
    168.     <Reference Include="UnityEngine.ParticlesLegacyModule">
    169.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll</HintPath>
    170.     </Reference>
    171.     <Reference Include="UnityEngine.PerformanceReportingModule">
    172.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll</HintPath>
    173.     </Reference>
    174.     <Reference Include="UnityEngine.PhysicsModule">
    175.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll</HintPath>
    176.     </Reference>
    177.     <Reference Include="UnityEngine.Physics2DModule">
    178.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll</HintPath>
    179.     </Reference>
    180.     <Reference Include="UnityEngine.ProfilerModule">
    181.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll</HintPath>
    182.     </Reference>
    183.     <Reference Include="UnityEngine.ScreenCaptureModule">
    184.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll</HintPath>
    185.     </Reference>
    186.     <Reference Include="UnityEngine.SharedInternalsModule">
    187.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll</HintPath>
    188.     </Reference>
    189.     <Reference Include="UnityEngine.SpatialTrackingModule">
    190.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll</HintPath>
    191.     </Reference>
    192.     <Reference Include="UnityEngine.SpriteMaskModule">
    193.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll</HintPath>
    194.     </Reference>
    195.     <Reference Include="UnityEngine.SpriteShapeModule">
    196.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll</HintPath>
    197.     </Reference>
    198.     <Reference Include="UnityEngine.StreamingModule">
    199.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll</HintPath>
    200.     </Reference>
    201.     <Reference Include="UnityEngine.StyleSheetsModule">
    202.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll</HintPath>
    203.     </Reference>
    204.     <Reference Include="UnityEngine.SubstanceModule">
    205.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll</HintPath>
    206.     </Reference>
    207.     <Reference Include="UnityEngine.TLSModule">
    208.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll</HintPath>
    209.     </Reference>
    210.     <Reference Include="UnityEngine.TerrainModule">
    211.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll</HintPath>
    212.     </Reference>
    213.     <Reference Include="UnityEngine.TerrainPhysicsModule">
    214.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll</HintPath>
    215.     </Reference>
    216.     <Reference Include="UnityEngine.TextRenderingModule">
    217.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll</HintPath>
    218.     </Reference>
    219.     <Reference Include="UnityEngine.TilemapModule">
    220.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll</HintPath>
    221.     </Reference>
    222.     <Reference Include="UnityEngine.TimelineModule">
    223.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll</HintPath>
    224.     </Reference>
    225.     <Reference Include="UnityEngine.UIModule">
    226.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll</HintPath>
    227.     </Reference>
    228.     <Reference Include="UnityEngine.UIElementsModule">
    229.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll</HintPath>
    230.     </Reference>
    231.     <Reference Include="UnityEngine.UNETModule">
    232.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll</HintPath>
    233.     </Reference>
    234.     <Reference Include="UnityEngine.UmbraModule">
    235.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll</HintPath>
    236.     </Reference>
    237.     <Reference Include="UnityEngine.UnityAnalyticsModule">
    238.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll</HintPath>
    239.     </Reference>
    240.     <Reference Include="UnityEngine.UnityConnectModule">
    241.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll</HintPath>
    242.     </Reference>
    243.     <Reference Include="UnityEngine.UnityWebRequestModule">
    244.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll</HintPath>
    245.     </Reference>
    246.     <Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
    247.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
    248.     </Reference>
    249.     <Reference Include="UnityEngine.UnityWebRequestAudioModule">
    250.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
    251.     </Reference>
    252.     <Reference Include="UnityEngine.UnityWebRequestTextureModule">
    253.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
    254.     </Reference>
    255.     <Reference Include="UnityEngine.UnityWebRequestWWWModule">
    256.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
    257.     </Reference>
    258.     <Reference Include="UnityEngine.VRModule">
    259.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll</HintPath>
    260.     </Reference>
    261.     <Reference Include="UnityEngine.VehiclesModule">
    262.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll</HintPath>
    263.     </Reference>
    264.     <Reference Include="UnityEngine.VideoModule">
    265.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll</HintPath>
    266.     </Reference>
    267.     <Reference Include="UnityEngine.WindModule">
    268.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll</HintPath>
    269.     </Reference>
    270.     <Reference Include="UnityEngine.XRModule">
    271.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll</HintPath>
    272.     </Reference>
    273.     <Reference Include="Unity.Locator">
    274.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/Unity.Locator.dll</HintPath>
    275.     </Reference>
    276.     <Reference Include="UnityEngine.UI">
    277.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll</HintPath>
    278.     </Reference>
    279.     <Reference Include="UnityEditor.UI">
    280.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/GUISystem/Editor/UnityEditor.UI.dll</HintPath>
    281.     </Reference>
    282.     <Reference Include="UnityEditor.TestRunner">
    283.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/TestRunner/Editor/UnityEditor.TestRunner.dll</HintPath>
    284.     </Reference>
    285.     <Reference Include="UnityEngine.TestRunner">
    286.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/TestRunner/UnityEngine.TestRunner.dll</HintPath>
    287.     </Reference>
    288.     <Reference Include="nunit.framework">
    289.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/TestRunner/net35/unity-custom/nunit.framework.dll</HintPath>
    290.     </Reference>
    291.     <Reference Include="UnityEngine.Timeline">
    292.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll</HintPath>
    293.     </Reference>
    294.     <Reference Include="UnityEditor.Timeline">
    295.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/Timeline/Editor/UnityEditor.Timeline.dll</HintPath>
    296.     </Reference>
    297.     <Reference Include="UnityEditor.TreeEditor">
    298.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/TreeEditor/Editor/UnityEditor.TreeEditor.dll</HintPath>
    299.     </Reference>
    300.     <Reference Include="UnityEngine.Networking">
    301.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll</HintPath>
    302.     </Reference>
    303.     <Reference Include="UnityEditor.Networking">
    304.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/Networking/Editor/UnityEditor.Networking.dll</HintPath>
    305.     </Reference>
    306.     <Reference Include="UnityEditor.GoogleAudioSpatializer">
    307.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/Editor/UnityEditor.GoogleAudioSpatializer.dll</HintPath>
    308.     </Reference>
    309.     <Reference Include="UnityEngine.GoogleAudioSpatializer">
    310.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll</HintPath>
    311.     </Reference>
    312.     <Reference Include="UnityEditor.HoloLens">
    313.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnityHoloLens/Editor/UnityEditor.HoloLens.dll</HintPath>
    314.     </Reference>
    315.     <Reference Include="UnityEngine.HoloLens">
    316.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll</HintPath>
    317.     </Reference>
    318.     <Reference Include="UnityEditor.SpatialTracking">
    319.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/Editor/UnityEditor.SpatialTracking.dll</HintPath>
    320.     </Reference>
    321.     <Reference Include="UnityEngine.SpatialTracking">
    322.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll</HintPath>
    323.     </Reference>
    324.     <Reference Include="UnityEditor.VR">
    325.       <HintPath>C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll</HintPath>
    326.     </Reference>
    327.     <Reference Include="UnityEditor.Graphs">
    328.       <HintPath>C:/Program Files/Unity/Editor/Data/Managed/UnityEditor.Graphs.dll</HintPath>
    329.     </Reference>
    330.     <Reference Include="UnityEditor.Android.Extensions">
    331.       <HintPath>C:/Program Files/Unity/Editor/Data/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll</HintPath>
    332.     </Reference>
    333.     <Reference Include="UnityEditor.WSA.Extensions">
    334.       <HintPath>C:/Program Files/Unity/Editor/Data/PlaybackEngines/MetroSupport/UnityEditor.WSA.Extensions.dll</HintPath>
    335.     </Reference>
    336.     <Reference Include="UnityEditor.LinuxStandalone.Extensions">
    337.       <HintPath>C:/Program Files/Unity/Editor/Data/PlaybackEngines/LinuxStandaloneSupport/UnityEditor.LinuxStandalone.Extensions.dll</HintPath>
    338.     </Reference>
    339.     <Reference Include="UnityEditor.WindowsStandalone.Extensions">
    340.       <HintPath>C:/Program Files/Unity/Editor/Data/PlaybackEngines/windowsstandalonesupport/UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
    341.     </Reference>
    342.     <Reference Include="UnityEditor.OSXStandalone.Extensions">
    343.       <HintPath>C:/Program Files/Unity/Editor/Data/PlaybackEngines/MacStandaloneSupport/UnityEditor.OSXStandalone.Extensions.dll</HintPath>
    344.     </Reference>
    345.     <Reference Include="EnchanterCommon">
    346.       <HintPath>D:/NKLI/MR/Scratch Pad/Assets/CodeEnchanter/Plugins/EnchanterCommon.dll</HintPath>
    347.     </Reference>
    348.     <Reference Include="UnityEditor.Advertisements">
    349.       <HintPath>C:/Users/nin/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.ads@2.0.8/Editor/UnityEditor.Advertisements.dll</HintPath>
    350.     </Reference>
    351.     <Reference Include="UnityEngine.Analytics">
    352.       <HintPath>C:/Users/nin/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.16/UnityEngine.Analytics.dll</HintPath>
    353.     </Reference>
    354.     <Reference Include="UnityEditor.Analytics">
    355.       <HintPath>C:/Users/nin/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.16/Editor/UnityEditor.Analytics.dll</HintPath>
    356.     </Reference>
    357.     <Reference Include="UnityEditor.Purchasing">
    358.       <HintPath>C:/Users/nin/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.3/Editor/UnityEditor.Purchasing.dll</HintPath>
    359.     </Reference>
    360.     <Reference Include="UnityEngine.StandardEvents">
    361.       <HintPath>C:/Users/nin/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.13/UnityEngine.StandardEvents.dll</HintPath>
    362.     </Reference>
    363.     <Reference Include="SyntaxTree.VisualStudio.Unity.Bridge">
    364.       <HintPath>C:/Program Files (x86)/Microsoft Visual Studio Tools for Unity/15.0/Editor/SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath>
    365.     </Reference>
    366.     <Reference Include="mscorlib">
    367.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/mscorlib.dll</HintPath>
    368.     </Reference>
    369.     <Reference Include="System">
    370.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.dll</HintPath>
    371.     </Reference>
    372.     <Reference Include="System.Core">
    373.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Core.dll</HintPath>
    374.     </Reference>
    375.     <Reference Include="System.Runtime.Serialization">
    376.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Runtime.Serialization.dll</HintPath>
    377.     </Reference>
    378.     <Reference Include="System.Xml">
    379.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.dll</HintPath>
    380.     </Reference>
    381.     <Reference Include="System.Xml.Linq">
    382.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.Linq.dll</HintPath>
    383.     </Reference>
    384.     <Reference Include="UnityScript">
    385.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.dll</HintPath>
    386.     </Reference>
    387.     <Reference Include="UnityScript.Lang">
    388.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.Lang.dll</HintPath>
    389.     </Reference>
    390.     <Reference Include="Boo.Lang">
    391.       <HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/Boo.Lang.dll</HintPath>
    392.     </Reference>
    393.   </ItemGroup>
    394.   <ItemGroup>
    395.     <ProjectReference Include="Assembly-CSharp.csproj">
    396.       <Project>{2E6491A2-8B16-768B-AD73-59CC636E8128}</Project>
    397.       <Name>Assembly-CSharp</Name>
    398.     </ProjectReference>
    399.   </ItemGroup>
    400.   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    401.   <Target Name="GenerateTargetFrameworkMonikerAttribute" />
    402.   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
    403.        Other similar extension points exist, see Microsoft.Common.targets.
    404.   <Target Name="BeforeBuild">
    405.   </Target>
    406.   <Target Name="AfterBuild">
    407.   </Target>
    408.   -->
    409. </Project>
    Visual Studio Version: 15.8.4
     
  9. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Seems like a missing or misversioned dll. It is really hard to fix these kind of issues remotely. I'm working on bringing an alternative to Visual Studio's build system for Windows. It's already implemented for Mac and Linux, so it would speed up things if you could try Enchanter on Mac or Linux if possible.

    Also you installed .Net Framework 4.7.1 or higher, right? https://www.microsoft.com/net/download/dotnet-framework-runtime/net471
     
    Last edited: Sep 13, 2018
  10. Ninlilizi

    Ninlilizi

    Joined:
    Sep 19, 2016
    Posts:
    294
    It's cool. I can wait for the new build system.
     
  11. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    A new build that fixes dll mismatch/loading errors for Windows is live. All the errors below should be fixed. Delete the asset and reimport it again please.

    Code (CSharp):
    1. [Failure] Msbuild failed when processing the file X with message: Invalid static method invocation syntax: "[Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier), $(TargetFrameworkVersion), $(TargetFrameworkProfile), $(PlatformTarget), $(TargetFrameworkRootPath), $(TargetFrameworkFallbackSearchPaths))". Method 'Microsoft.Build.Utilities.ToolLocationHelper.GetPathToStandardLibraries' not found. Static method invocation should be of the form: $([FullTypeName]::Method()), e.g. $([System.IO.Path]::Combine(`a`, `b`)).  
    Code (CSharp):
    1. Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'NuGet.Build.Tasks.GetReferenceNearestTargetFrameworkTask' to type 'Microsoft.Build.Framework.ITask'.
    Code (CSharp):
    1. System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
    2.    at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
    3.    at System.Reflection.RuntimeAssembly.get_DefinedTypes()
    4.    at System.Composition.Hosting.ContainerConfiguration.<>c.<WithAssemblies>b__16_0(Assembly a)
    5.    at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
    6.    at System.Composition.TypedParts.TypedPartExportDescriptorProvider..ctor(IEnumerable`1 types, AttributedModelProvider attributeContext)
    7.    at System.Composition.Hosting.ContainerConfiguration.CreateContainer()
    8.    at Microsoft.CodeAnalysis.Host.Mef.MefHostServices.Create(IEnumerable`1 assemblies)
    9.    at Microsoft.CodeAnalysis.Host.Mef.DesktopMefHostServices.get_DefaultServices()
     
  12. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Thanks for the heads up Antony. I did some research and some tests on Unity 2018 and 2017, but couldn't see such a situation. Maybe it was valid for older versions?

    Also first major patch will be live next week, with a new enchantment.
     
  13. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    151
    @MerryYellow

    Unable to use CodeEnchanter 1.1.1 for Unity 2018.2.17f1 macOS<Metal> .NET 4.x Clean install No compile errors, it throws this error upon launch: Cannot start dotnet...
    Code (CSharp):
    1. Cannot start dotnet...
    2. 0   Unity                               0x0000000101a0116c _Z13GetStacktracei + 92
    3. 1   Unity                               0x0000000100c0c5db _Z17DebugStringToFileRK21DebugStringToFileData + 795
    4. 2   Unity                               0x0000000101e59686 _ZN15DebugLogHandler12Internal_LogE7LogTypeN4core12basic_stringIcNS1_20StringStorageDefaultIcEEEEP6Object + 310
    5. 3   Unity                               0x0000000101e5945a _Z35DebugLogHandler_CUSTOM_Internal_Log7LogTypeP10MonoStringP10MonoObject + 330
    6. 4  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    7. 5  (Mono JIT Code) MerryYellow.CodeEnchanter.Common.ELogger:Log (MerryYellow.CodeEnchanter.Common.ELogger/Level,string)
    8.  
    Code (CSharp):
    1. STATUS2: -2224
    2. 0   Unity                               0x0000000101a0116c _Z13GetStacktracei + 92
    3. 1   Unity                               0x0000000100c0c5db _Z17DebugStringToFileRK21DebugStringToFileData + 795
    4. 2   Unity                               0x0000000101e59686 _ZN15DebugLogHandler12Internal_LogE7LogTypeN4core12basic_stringIcNS1_20StringStorageDefaultIcEEEEP6Object + 310
    5. 3   Unity                               0x0000000101e5945a _Z35DebugLogHandler_CUSTOM_Internal_Log7LogTypeP10MonoStringP10MonoObject + 330
    6. 4  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    7. 5  (Mono JIT Code) MerryYellow.CodeEnchanter.Common.ELogger:Log (MerryYellow.CodeEnchanter.Common.ELogger/Level,string)
    8. 6  (Mono JIT Code) System.Threading.ThreadHelper:ThreadStart_Context (object)
    9. 7  (Mono JIT Code) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
    10. 8   libmonobdwgc-2.0.dylib              0x000000014350eb84 mono_jit_runtime_invoke + 2519
    11. 9   libmonobdwgc-2.0.dylib              0x00000001436cf199 do_runtime_invoke + 80
    12. 10  libmonobdwgc-2.0.dylib              0x00000001436ec5e9 start_wrapper + 707
    13. 11  libmonobdwgc-2.0.dylib              0x000000014375dd33 GC_inner_start_routine + 90
    14. 12  libmonobdwgc-2.0.dylib              0x000000014375dccb GC_start_routine + 28
    15. 13  libsystem_pthread.dylib             0x00007fff75867339 _pthread_body + 126
    16. 14  libsystem_pthread.dylib             0x00007fff7586a2a7 _pthread_start + 70
    17. 15  libsystem_pthread.dylib             0x00007fff75866445 thread_start + 13
    18.  
    Code (CSharp):
    1. Error in native wrapper
    2. 0   Unity                               0x0000000101a0116c _Z13GetStacktracei + 92
    3. 1   Unity                               0x0000000100c0c5db _Z17DebugStringToFileRK21DebugStringToFileData + 795
    4. 2   Unity                               0x0000000101e59686 _ZN15DebugLogHandler12Internal_LogE7LogTypeN4core12basic_stringIcNS1_20StringStorageDefaultIcEEEEP6Object + 310
    5. 3   Unity                               0x0000000101e5945a _Z35DebugLogHandler_CUSTOM_Internal_Log7LogTypeP10MonoStringP10MonoObject + 330
    6. 4  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    7. 5  (Mono JIT Code) MerryYellow.CodeEnchanter.Common.ELogger:Log (MerryYellow.CodeEnchanter.Common.ELogger/Level,string)
    8. 6  (Mono JIT Code) System.Threading.ThreadHelper:ThreadStart_Context (object)
    9. 7  (Mono JIT Code) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
    10. 8   libmonobdwgc-2.0.dylib              0x000000014350eb84 mono_jit_runtime_invoke + 2519
    11. 9   libmonobdwgc-2.0.dylib              0x00000001436cf199 do_runtime_invoke + 80
    12. 10  libmonobdwgc-2.0.dylib              0x00000001436ec5e9 start_wrapper + 707
    13. 11  libmonobdwgc-2.0.dylib              0x000000014375dd33 GC_inner_start_routine + 90
    14. 12  libmonobdwgc-2.0.dylib              0x000000014375dccb GC_start_routine + 28
    15. 13  libsystem_pthread.dylib             0x00007fff75867339 _pthread_body + 126
    16. 14  libsystem_pthread.dylib             0x00007fff7586a2a7 _pthread_start + 70
    17. 15  libsystem_pthread.dylib             0x00007fff75866445 thread_start + 13
    18.  
    Code (CSharp):
    1. Initializing Enchanter...
    2. 0   Unity                               0x0000000101a0116c _Z13GetStacktracei + 92
    3. 1   Unity                               0x0000000100c0c5db _Z17DebugStringToFileRK21DebugStringToFileData + 795
    4. 2   Unity                               0x0000000101e59686 _ZN15DebugLogHandler12Internal_LogE7LogTypeN4core12basic_stringIcNS1_20StringStorageDefaultIcEEEEP6Object + 310
    5. 3   Unity                               0x0000000101e5945a _Z35DebugLogHandler_CUSTOM_Internal_Log7LogTypeP10MonoStringP10MonoObject + 330
    6. 4  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,string,UnityEngine.Object)
    7. 5  (Mono JIT Code) MerryYellow.CodeEnchanter.Common.ELogger:Log (MerryYellow.CodeEnchanter.Common.ELogger/Level,string)
    8. 6  (Mono JIT Code) [SimpleWindow.cs:164] MerryYellow.CodeEnchanter.UnityEnchanterGUI.SimpleWindow:OnGUI ()
    9. 7  (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
    10. 8   libmonobdwgc-2.0.dylib              0x000000014350eb84 mono_jit_runtime_invoke + 2519
    11. 9   libmonobdwgc-2.0.dylib              0x00000001436cf199 do_runtime_invoke + 80
    12. 10  libmonobdwgc-2.0.dylib              0x00000001436d24c9 mono_runtime_try_invoke_array + 1143
    13. 11  libmonobdwgc-2.0.dylib              0x00000001436817d8 ves_icall_InternalInvoke + 654
    14. 12  (Mono JIT Code) (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
    15. 13  (Mono JIT Code) System.Reflection.MethodBase:Invoke (object,object[])
    16. 14  (Mono JIT Code) [DockArea.cs:393] UnityEditor.DockArea:OldOnGUI ()
    17.  
    Please help when time permits, Thanks in advance.
    P.S.: Discovered CE's ReadMe file and installed ".NET Core 2.1 SDK - macOS x64 Installer" double checked in Terminal to ensure its running then restarted Unity and relaunched CE but it still threw same errors listed above.o_O
     
    Last edited: Nov 28, 2018
  14. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Hi @C_p_H
    Can you please type "dotnet --info" in the console and post the output
    Also rebooting might help since you just installed .NET Core
     
    Last edited: Nov 30, 2018
  15. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    151
    @MerryYellow

    Console, Before Reboot:
    Code (CSharp):
    1. Non-fatal error enumerating at <private>, continuing: Error Domain=NSCocoaErrorDomain Code=260 "The file “PlugIns” couldn’t be opened because there is no such file." UserInfo={NSURL=PlugIns/ -- file:///usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.aspnetcore.app/, NSFilePath=/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.aspnetcore.app/PlugIns, NSUnderlyingError=0x7f8c59414890 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
    2.  
    3. Non-fatal error enumerating at <private>, continuing: Error Domain=NSCocoaErrorDomain Code=260 "The file “PlugIns” couldn’t be opened because there is no such file." UserInfo={NSURL=PlugIns/ -- file:///usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/, NSFilePath=/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/PlugIns, NSUnderlyingError=0x7f8c5aa5f570 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
    Console, After Reboot:
    Code (CSharp):
    1. Non-fatal error enumerating at <private>, continuing: Error Domain=NSCocoaErrorDomain Code=260 "The file “PlugIns” couldn’t be opened because there is no such file." UserInfo={NSURL=PlugIns/ -- file:///usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/, NSFilePath=/usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.netcore.app/PlugIns, NSUnderlyingError=0x7ff390197fd0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
    Terminal Info:
    Code (CSharp):
    1. Usage: dotnet [options]
    2. Usage: dotnet [path-to-application]
    3.  
    4. Options:
    5.   -h|--help         Display help.
    6.   --info            Display .NET Core information.
    7.   --list-sdks       Display the installed SDKs.
    8.   --list-runtimes   Display the installed runtimes.
    9.  
    10. path-to-application:
    11.   The path to an application .dll file to execute.
    12. Carlton-iMac:~ CpH_SOH_DOE$ dotnet --info
    13. .NET Core SDK (reflecting any global.json):
    14. Version:   2.1.500
    15. Commit:    b68b931422
    16.  
    17. Runtime Environment:
    18. OS Name:     Mac OS X
    19. OS Version:  10.14
    20. OS Platform: Darwin
    21. RID:         osx.10.14-x64
    22. Base Path:   /usr/local/share/dotnet/sdk/2.1.500/
    23.  
    24. Host (useful for support):
    25.   Version: 2.1.6
    26.   Commit:  3f4f8eebd8
    27.  
    28. .NET Core SDKs installed:
    29.   1.0.4 [/usr/local/share/dotnet/sdk]
    30.   2.0.0 [/usr/local/share/dotnet/sdk]
    31.   2.1.302 [/usr/local/share/dotnet/sdk]
    32.   2.1.500 [/usr/local/share/dotnet/sdk]
    33.  
    34. .NET Core runtimes installed:
    35.   Microsoft.AspNetCore.All 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
    36.   Microsoft.AspNetCore.All 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
    37.   Microsoft.AspNetCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
    38.   Microsoft.AspNetCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
    39.   Microsoft.NETCore.App 1.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
    40.   Microsoft.NETCore.App 1.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
    41.   Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
    42.   Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
    43.   Microsoft.NETCore.App 2.1.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
    44.  
    45. To install additional .NET Core runtimes or SDKs:
    46.   https://aka.ms/dotnet-download
    Appreciate your investigation.
     
  16. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
  17. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    151
    Works now for Unity macOS & thank you very much for the fix in record time!
     
  18. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Glad to hear it is working :)
     
  19. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Hi everyone,

    StringBuilder, the new enchantment is ready for the new year. Version 1.2 is out with a wide range of support, go get it.

    Happy New Year!
     
  20. 40detectives

    40detectives

    Joined:
    Apr 9, 2016
    Posts:
    74
    Wanted to ask a few questions:
    1. Does work with 2019.1.x at the moment ?
    2. From the video it seems to check what the exact changes were by using git, would it be possible to add a view with "Preview the changes before applying" thing?
     
    NeatWolf likes this.
  21. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    Yes it does (version 2019 didn't need any extra work, so it's not in the changelog)

    I don't plan to implement it in the near future. It will be very time consuming, I'd prefer to add more enchantments instead of doing it.
     
  22. MerryYellow

    MerryYellow

    Joined:
    Sep 6, 2018
    Posts:
    22
    I'm officially ending support for Unity forums. Unfortunately it is putting huge barriers between the devs and users of the asset. To provide the best experience for you, the users, communications will be carried on the official website and discord channel. Thank you for your understanding.