Files
MinFt/Client/Assets/Scripts/UI/Setting/PlayerHeadPopupPanel.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

276 lines
8.9 KiB
C#

using asap.core;
using cfg;
using game;
using GameCore;
using System;
using System.Collections.Generic;
using TMPro;
// using tysdk;
using UnityEngine;
using UnityEngine.UI;
public class PlayerHeadPopupPanel : MonoBehaviour
{
IUserService userService;
public Button btn_mask;
public Button btn_close;
public Head head;
public TMP_Text text_name;
public Button btn_name;
public Button btn_save;
public Transform content;
public GameObject item;
string url;
string headUrl;
int index;
List<HeadItem> platformHead = new List<HeadItem>();
List<HeadItem> headItems = new List<HeadItem>();
List<UserAvatar> userAvatars = new List<UserAvatar>();
HeadItem headItem_fb;
private void Awake()
{
userAvatars = GContext.container.Resolve<Tables>().TbUserAvatar.DataList;
userService = GContext.container.Resolve<IUserService>();
btn_mask = transform.Find("mask").GetComponent<Button>();
btn_close = transform.Find("btn_close").GetComponent<Button>();
head = transform.Find("root/btn_head").GetComponent<Head>();
text_name = transform.Find("root/btn_head/text_name").GetComponent<TMP_Text>();
btn_name = transform.Find("root/btn_head/text_name/btn_change").GetComponent<Button>();
btn_save = transform.Find("root/btn_save/btn_green").GetComponent<Button>();
content = transform.Find("root/ScrollView1/Viewport/Content/Item/panel_head").GetComponent<Transform>();
item = transform.Find("root/ScrollView1/Viewport/Content/Item/panel_head/head").gameObject;
GContext.container.Resolve<GuideDataCenter>().InspectTriggerGuide("PlayerHeadPopupPanel");
}
private void Start()
{
item.SetActive(false);
text_name.text = userService.DisplayName;
url = headUrl = userService.AvatarUrl;
btn_save.onClick.AddListener(OnClickSave);
btn_name.onClick.AddListener(OnClickName);
btn_mask.onClick.AddListener(OnClickClose);
btn_close.onClick.AddListener(OnClickClose);
index = 0;
platformHead = new List<HeadItem>();
#region facebookAvatar
if (!ChannelManager.IsRustoreStore)
{
SetHeadItemFb();
}
#endregion facebookAvatar
for (int i = 0; i < userAvatars.Count; i++)
{
GameObject gameObject = Instantiate(item, content);
gameObject.SetActive(true);
HeadItem headItem = gameObject.AddComponent<HeadItem>();
headItem.SetSelected(false);
string avatar = userAvatars[i].Avatar;
int clickindex = i;
headItem.onClick = () => { ClickItem(clickindex, avatar); };
headItems.Add(headItem);
if (string.IsNullOrEmpty(headUrl))
{
if (userAvatars[i].ID == GContext.container.Resolve<Tables>().TbGlobalConfig.InitAvatar)
{
index = i;
}
}
else
{
if (userAvatars[i].Avatar == headUrl)
{
index = i;
}
}
}
if (index >= headItems.Count)
{
index = 0;
}
if (index >= 0)
{
headItems[index].SetSelected(true);
url = userAvatars[index].Avatar;
}
head.SetData(url);
for (int i = 0; i < userAvatars.Count; i++)
{
headItems[i].SetUrlAsync(userAvatars[i].Avatar);
}
}
void SetHeadItemFb()
{
GameObject head_fb = Instantiate(item, content);
head_fb.SetActive(true);
headItem_fb = head_fb.AddComponent<HeadItem>();
headItem_fb.SetSelected(false);
headItem_fb.SetUrlAsync("sp_avatar_33");
platformHead.Add(headItem_fb);
headItem_fb.onClick = OnBtnFacebook;
Dictionary<string, string> EAccoutUrl = userService.EAccoutUrl;
if (EAccoutUrl != null && EAccoutUrl.Count > 0)
{
// //平台头像
// if (EAccoutUrl.TryGetValue(EAccoutType.hwFacebook.ToString(), out string facebookAvatar))
// {
// headItem_fb.SetUrlAsync(facebookAvatar);
// headItem_fb.SetSelected(url == facebookAvatar);
// if (url == facebookAvatar)
// {
// index = -1;
// }
// headItem_fb.onClick = () => { ClickItem(-1, facebookAvatar); };
// headItem_fb.transform.Find("tag_facebook").gameObject.SetActive(true);
// }
}
else
{
index = 0;
}
}
async void OnClickName()
{
btn_name.enabled = false;
GameObject panel = await UIManager.Instance.GetUIAsync(UITypes.PlayerNamePopupPanel);
PlayerNamePopupPanel playerNamePopupPanel = panel.GetComponent<PlayerNamePopupPanel>();
//playerNamePopupPanel.inputField.text = text_name.text;
playerNamePopupPanel.Show(text_name);
btn_name.enabled = true;
}
void ClickItem(int _index, string avatar)
{
if (index == _index)
{
return;
}
if (index >= 0)
{
headItems[index].SetSelected(false);
}
else
{
platformHead[-index - 1].SetSelected(false);
}
index = _index;
if (index >= 0)
{
headItems[index].SetSelected(true);
}
else
{
platformHead[-index - 1].SetSelected(true);
}
url = avatar;
head.SetData(url);
}
void OnClickSave()
{
if (!string.IsNullOrEmpty(url) && headUrl != url)
{
userService.UpdateAvatarUrl(url);
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_13"));
}
OnClickClose();
}
void OnClickClose()
{
UIManager.Instance.DestroyUI(UITypes.PlayerHeadPopupPanel);
}
async void OnBtnFacebook()
{
// if (TYSdkFacade.TYAccountInfo != null)
// {
// bool isLinkFacebook = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwFacebook);
// if (isLinkFacebook)
// {
// return;
// }
// }
// var result = await userService.LinkAccount(EAccoutType.hwFacebook);
// if (result.code == 0)
// {
// PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwFacebook.ToString(), "1");
// Dictionary<string, string> EAccoutUrl = userService.EAccoutUrl;
// if (EAccoutUrl != null && EAccoutUrl.Count > 0)
// {
// if (EAccoutUrl.TryGetValue(EAccoutType.hwFacebook.ToString(), out string facebookAvatar))
// {
// headItem_fb.SetUrlAsync(facebookAvatar);
// headItem_fb.onClick = () => { ClickItem(-1, facebookAvatar); };
// headItem_fb.transform.Find("tag_facebook").gameObject.SetActive(true);
// }
// }
// GetReward();
// }
}
void GetReward()
{
IFootPrintService footPrintService = GContext.container.Resolve<IFootPrintService>();
if (footPrintService.HasFootPrint(EFootPrint.IsFaceBookRewardLink))
{
return;
}
footPrintService.UpdateFootPrint(EFootPrint.IsFaceBookRewardLink);
int rewardID = GContext.container.Resolve<Tables>().TbGlobalConfig.AccountLinkReward;
ItemData itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(rewardID);
GContext.container.Resolve<PlayerItemData>().AddItem(itemData, null);
GContext.Publish(new ShowData(itemData));
GContext.Publish(new ShowData());
GContext.container.Resolve<PlayerShopData>().GetSKUs();
}
}
class HeadItem : MonoBehaviour
{
public Image icon_head;
Button btn_head;
public GameObject selected;
GameObject loading;
public Action onClick;
private void Awake()
{
btn_head = GetComponent<Button>();
icon_head = transform.Find("mask/icon_head").GetComponent<Image>();
selected = transform.Find("selected").gameObject;
loading = transform.Find("loading").gameObject;
btn_head.onClick.AddListener(OnClick);
}
public void SetSelected(bool value)
{
selected.SetActive(value);
}
void OnClick()
{
if (loading.activeSelf)
{
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_102"));
return;
}
if (onClick != null)
{
onClick();
}
}
public async void SetUrlAsync(string url)
{
if (!string.IsNullOrEmpty(url))
{
loading.SetActive(true);
await GContext.container.Resolve<IUIService>().SetHeadImage(icon_head, url);
if (loading != null)
{
loading.SetActive(false);
}
}
}
}