keenanwoodall / Deform

A fully-featured deformer system for Unity that lets you stack effects to animate models in real-time
MIT License
3.29k stars 225 forks source link

Scriptimporter hangs up #33

Open StefanWokusch opened 4 years ago

StefanWokusch commented 4 years ago

I tried, to use this git-repository in an external folder and import it in unity 2019.3f5 as an package. It turns out, it goes in an endless loop trying to create the settings asset:

In the Editor.log of unity it loops through that: ` Start importing Assets/Deform/EditorResources/DeformSettings.asset using Guid(3fd6d0f0be206104d92b623fbdfdddac) Importer(-1,00000000000000000000000000000000) Done importing asset: 'Assets/Deform/EditorResources/DeformSettings.asset' (target hash: '004dc9a8bef873adffdb5497b92c9620') in 0.005325 seconds Import parameters got modified during import UnityEditor.AssetDatabase:CreateAsset(Object, String) DeformEditor.DeformEditorResources:CreateAsset(Object, String) (at ThirdParty\Deform\Code\Editor\DeformEditorResources.cs:52) DeformEditor.DeformEditorSettings:EnsureSettingsAsset() (at ThirdParty\Deform\Code\Editor\DeformEditorSettings.cs:16)

[C:\buildslave\unity\build\Modules/AssetDatabase/Editor/V2/AssetImportManager.cpp line 332] (Filename: ThirdParty/Deform/Code/Editor/DeformEditorResources.cs Line: 52) `

It seems, there are hardcoded paths, in the creation, that forces the user to use it in the Assets/Deform folder and not as a package :(

StefanWokusch commented 4 years ago

It also hangs up, when not using it as an package, just importing is enough. Also when its just in Assets/Deform and downloading it via the assetStore. Everywhere the same.

Found a workaround: When it hangs up during during the import

keenanwoodall commented 4 years ago

When you say there's an endless loop, do you mean the settings asset is created constantly regardless of user input, or are you deleting it and it's recreating itself? If it's the latter, then it is performing as intended.

The settings asset gets created in the Assets folder so that it is unique to the project. I originally had it stored in the package, but depending on how you imported the package you either couldn't change it, or your settings would be lost when the package was updated. For example, this is the same reason Text Mesh Pro requires you to "Import TMP Essentials" into every project.

However, if the asset is being created constantly without user input, I'm not sure what would be causing that. I downloaded 2019.3.0f5, imported Deform via git url and local reference, but was not able to reproduce the issue.

StefanWokusch commented 4 years ago

It happened, when i tried to start unity and than its trying to import the library. Than its hanging there in this loop. I could see the exception in the first comment in the unity log.

It also happens at my teammember. We also tried to automatically build via Jenkins and came there to the same loop again :( don't know, what else could cause that problem, i now remove the editor scripts and import all needed files directly. My guess is, that while creating the script, unity search for the script in the asset and import than the script, due to the import wasn't finished. Maybe a small waiting time helps there, before creating the asset, or maybe in a different loading-stage (don't know the details of Unity there)