I haven't used it before so I'm not familiar what kind of shader SkeletonGhost uses.
But you will notice that Spine SkeletonRenderers/SkeletonAnimations do render based on a distance from the camera.
It doesn't use ZWrite. The camera just decides what to render first based on distance.
The whole thing. Not parts by writing to and reading from the depth buffer like ZWrite does.
I can't investigate this right now. Super under the weather. But I hope this info helps you for now.
02 Jan 2016 6:57 pm
Just to follow up, I think I've learned why it's hiding behind your objects.
It wasn't a shader thing.
SkeletonGhost and SkeletonRenderer belong to the same render queue so that wasn't causing anything strange.
But what it does mean is that SkeletonGhost relies on sorting layer and sorting order to render behind. SkeletonGhost passes (sortingOrder - 1) as the sorting order of the ghost elements: https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-unity/Assets/spine-unity/Ghost/SkeletonGhost.cs#L103
Unity's render system prioritizes grouping objects according to sorting order BEFORE letting the distance of objects affect the render order. If all your objects belong in the Default sorting layer, then anything of a sorting order less than 0 will be behind everything that is 0, including meshes that are whatever distance far away from the camera.
I've fixed SkeletonGhost and SkeletonGhostRenderer so you can use it with your type of workflow. See the new inspector items under the "Sorting" header. The default is still the 2D/sorting order way.