public void SetAvatar(GameObject newAvatarObject)
 {
     if (guideUMA != null)
     {
         if (newAvatarObject == guideUMA.gameObject)
         {
             //reset guide transparency one we have sussed out how to do this
             guideUMA = null;
         }
     }
     if (targetUMA == null || newAvatarObject != targetUMA.gameObject)
     {
         if (newAvatarObject.GetComponent <UMAAvatarBase>() != null)
         {
             targetUMA = newAvatarObject.GetComponent <UMAAvatarBase>();
             activeUMA = newAvatarObject.GetComponent <UMAAvatarBase>();
             SetAvailableConverters(activeUMA.umaData);
             selectedConverter = null;
         }
         else
         {
             targetUMA = null;
             activeUMA = null;
             availableConverters.Clear();
             selectedConverter = null;
         }
     }
 }
        // Update is called once per frame
        void Update()
        {
            if (activeUMA != targetUMA)
            {
                activeUMA = targetUMA;
                if (activeUMA.umaData != null)
                {
                    SetAvailableConverters(activeUMA.umaData);
                }
                else
                {
                    availableConverters.Clear();
                }
            }
            if (activeUMA != null)
            {
                if (activeUMA.umaData != null)
                {
                    if (activeUMA.umaData.umaRecipe != null)
                    {
                        if (activeUMA.umaData.umaRecipe.raceData != null)
                        {
                            if (activeUMA.umaData.umaRecipe.raceData.raceName != activeUMARace)
                            {
                                activeUMARace = activeUMA.umaData.umaRecipe.raceData.raceName;
                                SetAvailableConverters(activeUMA.umaData);
                            }
                        }
                    }
                }
            }
            //TODO make the guide /target semi transparent...

            /*if(guideUMA != null)
             * {
             *  if(guideUMA.umaData != null && guideAlphaSet == false)
             *  {
             *      foreach(SlotData slot in guideUMA.umaData.umaRecipe.GetAllSlots())
             *      {
             *          foreach(OverlayData overlay in slot.GetOverlayList())
             *          {
             *              overlay.asset.alphaMask = guideAlphaTex;
             *          }
             *      }
             *      guideAlphaSet = true;
             *      guideUMA.umaData.Dirty(false, true, false);
             *  }
             * }*/
        }
        // Use this for initialization
        void Start()
        {
            //TODO make the guide/target semi transparent

            /*targetAlphaTex = new Texture2D(2,2);
             * guideAlphaTex = new Texture2D(2,2);
             * var AlphaColor = new Color(guideAlpha, guideAlpha, guideAlpha, 1f);
             * guideAlphaTex.SetPixel(0, 0, AlphaColor);
             * guideAlphaTex.SetPixel(0, 1, AlphaColor);
             * guideAlphaTex.SetPixel(1, 0, AlphaColor);
             * guideAlphaTex.SetPixel(1, 1, AlphaColor);*/
            if (targetUMA != null)
            {
                activeUMA = targetUMA;
                activeUMA.CharacterUpdated.AddListener(SetAvailableConverters);
            }
        }