public void BeginLoadingAsset(
     UInt64 assetId,
     ovrAvatarAssetLevelOfDetail lod,
     assetLoadedCallback callback)
 {
     HashSet<assetLoadedCallback> callbackSet;
     if (!assetLoadedCallbacks.TryGetValue(assetId, out callbackSet))
     {
         callbackSet = new HashSet<assetLoadedCallback>();
         assetLoadedCallbacks.Add(assetId, callbackSet);
     }
     AvatarLogger.Log("Loading Asset ID: " + assetId);
     CAPI.ovrAvatarAsset_BeginLoadingLOD(assetId, lod);
     callbackSet.Add(callback);
 }
 public void BeginLoadingAsset(UInt64 assetId, assetLoadedCallback callback)
 {
     HashSet<assetLoadedCallback> callbackSet;
     if (!assetLoadedCallbacks.TryGetValue(assetId, out callbackSet))
     {
         callbackSet = new HashSet<assetLoadedCallback>();
         assetLoadedCallbacks.Add(assetId, callbackSet);
         //Only request the asset if we don't already have one in flight.
         CAPI.ovrAvatarAsset_BeginLoading(assetId);
     }
     if (callbackSet.Add(callback))
     {
         callbackSet.Add(callback);
     }
 }