海拔图小头像&比赛状态实时刷新

This commit is contained in:
lishuo 2021-07-28 14:00:03 +08:00
parent e29f0a8116
commit ea717ccdb8
11 changed files with 435 additions and 94 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,104 @@
fileFormatVersion: 2
guid: 60567ca5d2a8537479e14193fbfe3696
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,104 @@
fileFormatVersion: 2
guid: b48833204e01b8647a841221ff796923
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -951,7 +951,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Canel Reserve
m_Text: Cancel Reserve
--- !u!1 &3158444263648747324
GameObject:
m_ObjectHideFlags: 0
@ -3509,6 +3509,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 5276663987612575157}
- {fileID: 6558498178766627004}
m_Father: {fileID: 6558498177448486125}
m_RootOrder: 25
@ -5049,7 +5050,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6558498177906922480}
m_RootOrder: 0
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -5083,7 +5084,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_Texture: {fileID: 2800000, guid: 60567ca5d2a8537479e14193fbfe3696, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
@ -6222,6 +6223,94 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7692036110483560534
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5276663987612575157}
- component: {fileID: 200183816404078904}
- component: {fileID: 5216020905269346324}
- component: {fileID: 7666125021048885593}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5276663987612575157
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7692036110483560534}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6558498177906922480}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 3.500001, y: -59.000015}
m_SizeDelta: {x: 106, y: 36}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &200183816404078904
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7692036110483560534}
m_CullTransparentMesh: 0
--- !u!114 &5216020905269346324
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7692036110483560534}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.2784314, g: 0.2784314, b: 0.34901962, a: 0.8}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7666125021048885593
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7692036110483560534}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
m_Name:
m_EditorClassIdentifier:
radius: 13.24
--- !u!1 &7910723793670343315
GameObject:
m_ObjectHideFlags: 0

View File

@ -511,7 +511,7 @@ MonoBehaviour:
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 00:00:00
@ -754,7 +754,7 @@ MonoBehaviour:
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 00:00:00

View File

@ -1,5 +1,90 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &64531924829786173
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7822635574966073764}
- component: {fileID: 6303794538988308049}
- component: {fileID: 7620503616140542380}
- component: {fileID: 7119823121353765870}
m_Layer: 5
m_Name: Dot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7822635574966073764
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 64531924829786173}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 515512715299283612}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 8.5, y: 2}
m_SizeDelta: {x: 8, y: 8}
m_Pivot: {x: 0, y: 0}
--- !u!222 &6303794538988308049
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 64531924829786173}
m_CullTransparentMesh: 0
--- !u!114 &7620503616140542380
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 64531924829786173}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!114 &7119823121353765870
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 64531924829786173}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
m_Name:
m_EditorClassIdentifier:
radius: 4
--- !u!1 &515512715299283613
GameObject:
m_ObjectHideFlags: 0
@ -30,7 +115,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 9199588604269635338}
- {fileID: 7822635574966073764}
- {fileID: 515512715492064071}
- {fileID: 685146294485746414}
m_Father: {fileID: 0}
@ -264,77 +349,3 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4064798434365569382
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9199588604269635338}
- component: {fileID: 7324472603944067997}
- component: {fileID: 7974283264694629321}
m_Layer: 5
m_Name: Dot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9199588604269635338
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4064798434365569382}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 515512715299283612}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 6}
m_SizeDelta: {x: 8, y: 8}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7324472603944067997
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4064798434365569382}
m_CullTransparentMesh: 0
--- !u!114 &7974283264694629321
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4064798434365569382}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: f04f7faa5cfd8444a9b61e426135725f, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

@ -170,7 +170,7 @@ GameObject:
- component: {fileID: 8877223148509276861}
- component: {fileID: 1538477679825685925}
m_Layer: 5
m_Name: OnlineInfoPanel
m_Name: OnlineRaceInfoPanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -198,7 +198,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 48}
m_SizeDelta: {x: 200, y: 44}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8877223148509276859
CanvasRenderer:

View File

@ -39,6 +39,8 @@ namespace Assets.Scripts.Apis.Models
public bool CanJoin { get; set; }
public bool CanStart { get; set; }
public bool CanExit { get; set; }
public bool CanCancelJoin { get; set; }
public bool CanWatch { get; set; }
/// <summary>
/// 服务器当前时间
/// </summary>

View File

@ -14,7 +14,7 @@ namespace Assets.Scenes.Ride.Scripts
private GameObject Watch { get; set; }
private bool _canJoin = false;
private bool _canStart = false;
private bool _canWatch = false;
private RawImage CompetitionDesc { get; set; }
private RawImage SponsorLogoImage { get; set; }
private Text StartTime { get; set; }
@ -71,14 +71,22 @@ namespace Assets.Scenes.Ride.Scripts
//1.报名按钮
Apply.SetActive(_canJoin);
//2.观看按钮
var showWatch = !_canJoin && !_canStart && !_canCancelApply && _raceStart;
Watch.SetActive(showWatch);
Watch.SetActive(_canWatch);
//3.开始按钮
rideNow.gameObject.SetActive(_canStart);
//4.详情按钮
Detail.SetActive(!_canStart);
//5.取消报名按钮 (比赛开始前可以取消报名)
CancelJoin.SetActive(_canCancelApply && count > 0);
CancelJoin.SetActive(_canCancelApply);
if (_canCancelApply)
{
CompetitionStatus.text = "applied";
}
else
{
CompetitionStatus.text = competition.StatusVlaue.ToString();
}
}
#endregion
}
@ -131,8 +139,9 @@ namespace Assets.Scenes.Ride.Scripts
//赛事状态按钮控制
_canJoin = competition.CanJoin;
_canStart = competition.CanStart;
_canCancelApply = competition.applyed;//可以取消预约
_canCancelApply = competition.CanCancelJoin;//可以取消预约
_raceStart = competition.Status == 3;
_canWatch = competition.CanWatch;
#region
//赛事名称
mapName.text = competition.Title;
@ -151,9 +160,13 @@ namespace Assets.Scenes.Ride.Scripts
ShowPlayers(competition.UserList);
//路书描述
mapDescText.text = competition.Dec;
//主办方logo
Utils.DisplayImage(SponsorLogoImage, competition.SponsorCoverage, true);
ReadMore.SetActive(!string.IsNullOrEmpty(competition.Dec));
//主办方logo
if (!string.IsNullOrEmpty(competition.SponsorCoverage))
{
Utils.DisplayImage(SponsorLogoImage, competition.SponsorCoverage, true);
}
//赛事详情
//if (!string.IsNullOrEmpty(competition.ShortPreview))
//{
@ -202,9 +215,25 @@ namespace Assets.Scenes.Ride.Scripts
{
Application.OpenURL(App.CurrentUser.WebHost + $"#/Mine/MatchPreview?id={cyclingController.competitionId}&Token={App.CurrentUser.cookie}");
}
protected override void StartRide(BaseEventData baseEvent)
{
UpdateCompetition();
if (competition.Status == 4)
{
Utils.showToast(gameObject, "race close");
return;
}
base.StartRide(baseEvent);
}
//观察
protected void StartWatch(BaseEventData baseEvent)
{
UpdateCompetition();
if (competition.Status == 4)
{
Utils.showToast(gameObject, "race close");
return;
}
//隐藏当前用户
cyclingController.isWatch = true;
cyclingController.player.SetActive(false);
@ -229,7 +258,9 @@ namespace Assets.Scenes.Ride.Scripts
competition = result.data;
_canStart = competition.CanStart;
_canJoin = competition.CanJoin;
_canCancelApply = competition.applyed;
_canCancelApply = competition.CanCancelJoin;
_canWatch = competition.CanWatch;
_raceStart = competition.Status == 3;
}
}
protected void ApplyRace(BaseEventData baseEvent)

View File

@ -53,9 +53,9 @@ namespace Assets.Scenes.Ride.Scripts
protected override void Compute()
{
currentlatlong = mainController.Along(totalDistance);//下一个坐标
if (_playerController != null)
if (mainController.currentPlayer != null)
{
diff = Math.Round((totalDistance - _playerController.TotalDistance) * 1000, 0);
diff = Math.Round((totalDistance - mainController.currentPlayer.TotalDistance) * 1000, 0);
}
else
{
@ -114,7 +114,7 @@ namespace Assets.Scenes.Ride.Scripts
infoName.text = nickName;
//距离
var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>();
if (_playerController != null)
if (mainController.currentPlayer != null)
{
infoDistance.text = diff > 0? $"+{diff}M" : $"{diff}M";
}
@ -281,7 +281,7 @@ namespace Assets.Scenes.Ride.Scripts
}
if (head == null)
{
head = headPanel.GetComponentInChildren<RawImage>();
head = headPanel.transform.Find("Head").GetComponent<RawImage>();
if (!string.IsNullOrEmpty(headUrl))
{
Utils.DisplayImage(head, headUrl, true);