Download this documentation page as a PDF.
Meta Files - Missing Script
When using any external libraries (DLL files) with Unity, there is the possibility for GUID-related issues to occur. These issues manifest as "Missing (Mono Script)" messages in the inspector, and messages in the console along the lines of "The referenced script on this Behaviour is missing!". This happens because of the way Unity associates components with their DLL file. Unity stores references to components in scenes and prefabs using a Globally-Unique Identifier (GUID). For an external library, Unity generates a GUID when the DLL file is first seen in the Assets folder, and stores it in the associated meta file (.meta file extension).
If the GUID in the meta file is changed, the objects in the scenes and prefabs won't be able to find the component, as they won't know which external library to look in. This can happen if you delete the external library from within Unity and then re-add the file, as Unity will also delete the old meta file, and upon re-adding it will assign a new GUID. It can also happen if you delete only the meta file, as Unity will recreate it and again have to assign a new GUID.
It's possible to fix the missing script issue in most cases by restoring the original GUID to the meta file, and replacing all references to the incorrect GUID with the original one.
Warning: Please backup your project before proceeding!
There are four DLL files in Pure Pool that may need their meta files updating. You should perform the steps below for each DLL file. Before you begin, you will need a program capable of bulk Find and Replace, such as https://findandreplace.codeplex.com.
- Open your Find and Replace program of choice and set the folder to your project's Assets folder. Also check the "Include sub-directories" option (or similar).
- Identify the incorrect GUID for each DLL. Do so by finding the DLL in your project hierarchy and right clicking it, then select "Show in Explorer" (or the equivalent for Mac users). In the window that opens, find the .meta file with the same name as the DLL and open it (Notepad will work). The GUID (listed as "guid") is usually found on the second line. Copy this GUID into the "Find" field.
- Copy the correct GUID (listed below) into the Replace field. Initiate the Find and Replace operation.
The correct GUIDs for each external library in Pure Pool are listed here:
- DLL Name: Umbrace.Unity.PurePool.dll
Folder Path: Plugins\Umbrace.Unity.PurePool
Correct GUID: 901c3234e90460240bf35ffc5f78c51a
- DLL Name: Umbrace.Unity.PurePool.Editor.dll
Folder Path: Plugins\Umbrace.Unity.PurePool\Editor
Correct GUID: b09bf4b098bc4864e8ed0a9b7e8a5ae1
- DLL Name: Umbrace.Unity.PurePool.UNet.dll
Folder Path: Plugins\Umbrace.Unity.PurePool\Integration Libraries\UNet Unity Networking
Correct GUID: 540b353971d2819409a8c86421915ee4
- DLL Name: Umbrace.Unity.PurePool.PlayMaker.dll
Folder Path: Plugins\Umbrace.Unity.PurePool\Integration Libraries
Correct GUID: eaf32fbd675cb8e428739ed5f55f8ad1
With the correct GUIDs you should be able to update the package successfully in the future.