Weaver - Get rid of your magic strings

3956824--676458--title.png

Have you ever wanted to:

If so, then Weaver can help. Please check it out and let me know if you have any questions, feedback, feature requests, etc.

If you are upgrading from an earlier version of Weaver, the Change Log contains an Upgrade Guide to help you.

[Weaver Lite] [Weaver Pro] [Documentation] [Forum] [Support: mail@kybernetik.com]

1 Like

What is the difference with the Lite and Pro versions?

1 Like

The right column of the table on the home page of the documentation lists the restrictions to each of the features.

@Kybernetik Just found a bug on the inspector after creating the 14th layer.
5443197--555087--upload_2020-2-5_1-18-3.png
All the layer names would shift to the right.

Thanks, I'll take a look at it.

1 Like

Is this hotfix "Fixed CSharp.IsValidInMemberName to correctly treat the pipe symbol "|" as an invalid character" that could be included in the next update...

It will be included in the next update when I do some work on Weaver again, it's just a pain to test and upload the Pro and Lite versions with several different versions of Unity each (more so than my other assets because Weaver tests include procedural scripts so they can't be automated) so I haven't done it just for that one bug fix.

Speaking on new Unity versions.. just updated my project to 2020.1.0a22 and it was Weaver causing some issues with one of its build scripts that builds the BuildDetails.cs script

Well I mean you could just update the Pro version first and then do the Lite version as and when time allows, so Lite version doesn't get as frequent an update.. it is afterall the free version.

Trying to support alpha and beta versions of Unity is a massive waste of time because they often introduce bugs that are fixed by the time that version actually releases. For example, in one of the recent Unity versions they implemented a new API for adding your own page to the preferences window but during the beta the old system was broken and the new one completely undocumented, then when it released the old API worked fine again.

Setting up the tests and separating everything from the rest of my unreleased systems is also a significant chunk of the time involved and doing each version separately would increase the possibility of having different issues with only one of them, which is already a significant hassle as it is.

[quote]
[quote]
Severity Code Description Project File Line Suppression State
Error CS0246 The type or namespace name 'SimpleScriptBuilder' could not be found (are you missing a using directive or an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 21 Active
Error CS0115 'BuildDetailsScriptBuilder.GatherScriptDetails()': no suitable method found to override Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 86 Active
Error CS1729 'SimpleScriptBuilder' does not contain a constructor that takes 1 arguments Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 65 Active
Error CS0117 'WeaverUtils' does not contain a definition for 'ForceGenerate' Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 47 Active
Error CS0117 'WeaverUtils' does not contain a definition for 'IsBuilding' Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 74 Active
Error CS0117 'WeaverUtils' does not contain a definition for 'IsBuilding' Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 110 Active
Error CS0117 'WeaverUtils' does not contain a definition for 'IsBuilding' Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 142 Active
Error CS0117 'WeaverUtils' does not contain a definition for 'IsPreprocessingBuild' Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 48 Active
Error CS0103 The name 'AccessModifiers' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 100 Active
Error CS0103 The name 'AccessModifiers' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 100 Active
Error CS0103 The name 'AccessModifiers' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 100 Active
Error CS0103 The name 'RootType' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 96 Active
Error CS0103 The name 'RootType' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 99 Active
Error CS0103 The name 'RootType' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 113 Active
Error CS0103 The name 'ScriptGenerator' does not exist in the current context Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 111 Active
Error CS0246 The type or namespace name 'FieldBuilder' could not be found (are you missing a using directive or an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 79 Active
Error CS0246 The type or namespace name 'FieldBuilder' could not be found (are you missing a using directive or an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 80 Active
Error CS0234 The type or namespace name 'ProceduralScripting' does not exist in the namespace 'Kybernetik' (are you missing an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 8 Active
Error CS0234 The type or namespace name 'ProceduralScripting' does not exist in the namespace 'Kybernetik' (are you missing an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 8 Active
Error CS1061 'BuildDetailsScriptBuilder' does not contain a definition for 'BuildScript' and no accessible extension method 'BuildScript' accepting a first argument of type 'BuildDetailsScriptBuilder' could be found (are you missing a using directive or an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 74 Active
Error CS1061 'BuildDetailsScriptBuilder' does not contain a definition for 'RetainObsoleteMembers' and no accessible extension method 'RetainObsoleteMembers' accepting a first argument of type 'BuildDetailsScriptBuilder' could be found (are you missing a using directive or an assembly reference?) Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 73 Active
Error CS0115 'BuildDetailsScriptBuilder.AppendScript(StringBuilder)': no suitable method found to override Assembly-CSharp-firstpass C:\Projects\Unity\TM\Assets\Plugins\Weaver\BuildDetailsScriptBuilder.cs 108 Active
[/quote]
[/quote]

yeah fair enough can't blame you on that when it's unity breaking stuff without having adequate replacements they stick to and document properly.

Anyway the above error is from 2020.1.a22 but I'm not utilising weaver just yet, so I've removed it for now.

If you try it again, check the import settings of the DLLs because that sounds like the external scripts can't see anything in the DLLs so Unity might have lost the import settings (if so, that's a bug I would expect them to fix before release). The ones in Assets/Plugins/Weaver should be editor-only and the ones in the Runtime folder are for all other platforms.

hmm doesn't seem to be the issue

Weaver v6.0 is now up on the Asset Store. The Change Log is actually rather small, but since Weaver Pro now consists of raw source files instead of pre-compiled DLLs the Upgrade Guide has a process you need to follow if you want to keep your settings (custom layer masks, asset injection links, etc.)

Weaver v6.1 is now up on the Asset Store. Its Changes are mostly just improvements to the procedural scripting system which I needed in order to implement the Controller State Generator system for Animancer.

Is Weaver supposed to work well with Amplify Shaders? Because it causes a bunch of errors after generating the shader constants. Seems to be that it’s generating multiple duplicated lines.
Manually deleting the duplicated lines gets around the problem, but doing that every time the script is regenerated is less than ideal.

Unity 2020.2.7f1
Weaver Lite 6.1
Amplify 1.8.9
URP 10.3.2

Can you email your shader to mail@kybernetik.com.au so I can see where it's going wrong?

In the mean time, you could just copy the fixed class generated for that shader into another script and take it out of Weaver's list so it doesn't keep getting regenerated.

The attached zip should fix the issue. Just extract the DLL and XML files into Assets\Plugins\Weaver\Utilities\Weaver Lite and overwrite the existing files (not the ones inside the Runtime folder).

6914654--810818--Weaver Lite Hotfix (Unity 2019.4).zip (333 KB)

Beautiful.
Thanks for taking the time.
Love your assets.

@Kybernetik Does this asset support tags as well? Can't seem to find anything related to tags...