packaging completed assets to simplify change management

We are a new company that has been developing with Unity in the Philippines for the past few months. Our first app is coming along ok, and we are getting it ready to test it on some devices.

Is there a way to package the components within our app that are considered complete? For quality purposes I would like to somehow package the complete stuff so the development is more defined, especially with the modular stuff we are reusing in each app & managing lifecycle in our CMS.

I thought a .unitypackage might be the way, but it seems the .unitypackage is unpacked to its files & folders so that doesn’t work. Prefabs seem to need their source files in the scene too so that doesn’t make them a complete asset.

If someone knows of a way to package/segregate/quarantine assets that are completed but still be able to use them in the scene in that state, please advise. Or any other suggestions welcome too.

As an alternate approach, I also thought to maybe write an editor script that logs file changes (by file timestamp changes) of all the files in the asset folder. That way, when one of our developers works on a project, we can tell exactly which files were changed, so we know exactly what has been modified. But to do this I need to know - does Unity change file timestamps for asset files for any reason? Or do they only change when the asset file has actually been modified.

Any help much appreciated.

Storing your “completed assets” as AssetBundles might be the way to go:

http://docs.unity3d.com/Documentation/Manual/AssetBundlesIntro.html
http://docs.unity3d.com/Documentation/Manual/abfaq.html

You could then write and editor script to timestamp all the assets inside the asset bundle. Then, have it notify you if something has been updated and needs the asset bundle to be rebuilt. I am currently writing a production pipeline around asset bundles. One of Unity’s weaknesses, that I have found, is dealing with large scale projects. Nothing is worse than having to sit and wait for the Asset Database to reimport. Haha.