Zip Line — Asset Store Validation
Some of this is getting down into the weeds, but the Asset Store Validator tool reported several potential issues.
Zip Line — Asset Store Validation
Some of this is getting down into the weeds, but the Asset Store Validator tool reported several potential issues.

The documentation is a fair cop. Let’s run through some of the other ones.
Check Missing Components in Assets
Simple one here. I’d been using a Fantacode Studios script to rotate my item pickup. They removed it.

So, I removed it.
Check Missing Components in Scenes
This was the rotate script again, as we had that Prefab in the scene. And.. hmm… not certain what is missing here, but apparently we don’t need it.

Check Prefab Transforms
Again, a fair cop. One of my prefabs was not set at 0,0,0. An easy fix.

Check Static Variables
This is an interesting one, because it’s trying to avoid future problems.
Starting with Unity 6.6, ‘Fast Enter Play mode’ feature is the default setting for new projects, meaning that in scripts, static variables will keep their values and static events will keep their registered subscribers between Play mode sessions.
You should make sure that this is taken into account for your package scripts.
In two cases, the static fields in question are actually constants, so the easiest solution is to replace them with read-only properties.
public static partial class AnimatorParameters
{
public static int Ziplining = Animator.StringToHash("Ziplining");
}
public static partial class AnimationNames
{
public static int JumpUp = Animator.StringToHash("Jump Up");
}
becomes
public static partial class AnimatorParameters
{
public static int Ziplining { get { return Animator.StringToHash("Ziplining"); } }
}
public static partial class AnimationNames
{
public static int JumpUp { get { returnAnimator.StringToHash("Jump Up"); } }
}
There are probably other ways to solve that problem, but this works. The next place is in the ZipLineStructure where we maintain a static list of zip lines as they’re instantiated (or destroyed).
static List<ZipLineStructure> _zipLines = new List<ZipLineStructure>();
public static IReadOnlyList<ZipLineStructure> GetZiplines()
{
return _zipLines;
}
private void OnEnable()
{
_zipLines.Add(this);
}
private void OnDisable()
{
_zipLines.Remove(this);
}
We will want to clear the field on reset.
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
private static void Init()
{
// Simply re-assigning or leaving a comment inside satisfies the analyzer
_zipLines = new List<ZipLineStructure>();
}
Check Type Namespaces
This is a simple one. I had generated C# classes for my new inputs, and by default, they get put in the default namespace. Adding my own custom namespace made it all work. In the future, I probably ought to set the Root Namespace.

Further Steps
I also ran the Project Auditor and… there may be some other things to fix.

Also, I’ve come to realize that my current use of setting the transform position directly may break detection of collisions with the Character Controller, so I ought to fix that. And, of course, store images and documentation…
메타데이터
- post_id
- 8dbd7be6b0a0
- slug
- zip-line-asset-store-validation-8dbd7be6b0a0
- url
- https://medium.com/@sean.duggan/zip-line-asset-store-validation-8dbd7be6b0a0
- canonical_url
- https://medium.com/@sean.duggan/zip-line-asset-store-validation-8dbd7be6b0a0
- author_url
- https://medium.com/@sean.duggan
- status
- ok
- fetched_at
- 2026-08-26 21:14:02