WX-Game1/Assets/Scripts/Component/MyFriendComponent.cs

68 lines
3.0 KiB
C#

using System;
using MotionFramework;
using UnityEngine;
namespace DefaultNamespace.Component
{
public class MyFriendComponent : MonoBehaviour
{
[SerializeField] private Transform contentParent;
[SerializeField] private GameObject friendItemPrefab;
async void Start()
{
try
{
Debug.Log("开始获取好友列表...");
var friendResponse = await MotionEngine.GetModule<UserDataNetworkManager>().GetMyFriend();
// 检查响应状态码
if (friendResponse != null && friendResponse.code == 0)
{
Debug.Log($"成功获取好友列表,共 {friendResponse.data?.data?.Length ?? 0} 个好友");
Debug.Log($"当前页码: {friendResponse.data?.page ?? ""}, 总页数: {friendResponse.data?.allPage ?? 0}");
// 处理好友数据
if (friendResponse.data?.data != null && friendResponse.data.data.Length > 0)
{
Debug.Log($"开始创建 {friendResponse.data.data.Length} 个好友项...");
foreach (var friend in friendResponse.data.data)
{
// 实例化好友项
var friendItem = Instantiate(friendItemPrefab, contentParent);
friendItem.SetActive(true);
// 获取或添加FriendItemComponent组件
var friendItemComponent = friendItem.GetComponent<FriendItemComponent>();
if (friendItemComponent == null)
{
friendItemComponent = friendItem.AddComponent<FriendItemComponent>();
Debug.Log($"为好友项 {friend.user_username} 添加了FriendItemComponent组件");
}
// 初始化好友项数据(异步下载头像)
friendItemComponent.InitializeFriendItem(friend);
Debug.Log($"好友项创建完成: {friend.user_username}, ID: {friend.friend_id}, 等级: {friend.user_honor_level}");
}
Debug.Log("所有好友项创建完成,头像将异步下载");
}
else
{
Debug.Log("当前没有好友");
}
}
else
{
Debug.LogWarning($"获取好友列表失败,状态码: {friendResponse?.code ?? -1}, 消息: {friendResponse?.msg ?? ""}");
}
}
catch (System.Exception ex)
{
Debug.LogError($"获取好友列表时发生异常: {ex.Message}");
}
}
}
}