12.10 进度 基本完成
This commit is contained in:
@@ -5,6 +5,7 @@ using Continentis.MainGame.Combat;
|
||||
using DG.Tweening;
|
||||
using Lean.Pool;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Continentis.MainGame.UI
|
||||
@@ -13,15 +14,16 @@ namespace Continentis.MainGame.UI
|
||||
{
|
||||
[Header("UI References")]
|
||||
[SerializeField] private GameObject portraitPrefab;
|
||||
[SerializeField] private Transform portraitsContainer;
|
||||
[SerializeField] private RectTransform currentTurnPointer;
|
||||
|
||||
[FormerlySerializedAs("portraitsContainer")] public Transform avatarContainer;
|
||||
|
||||
[Header("Animation Settings")]
|
||||
[SerializeField] private float rearrangeAnimDuration = 0.4f; // 头像重新排列的动画时长
|
||||
|
||||
[FormerlySerializedAs("portraitWidth")]
|
||||
[Header("Layout Settings")]
|
||||
[SerializeField] private float portraitWidth = 133f; // 单个头像的宽度
|
||||
[SerializeField] private float portraitSpacing = 0f; // 头像之间的间距
|
||||
[SerializeField] private float avatarWidth = 133f; // 单个头像的宽度
|
||||
[FormerlySerializedAs("portraitSpacing")] [SerializeField] private float avatarSpacing = 0f; // 头像之间的间距
|
||||
|
||||
private List<CharacterBase> actionOrder => CombatMainManager.Instance.characterController.actionOrderList;
|
||||
public List<CharacterAvatar> avatars = new List<CharacterAvatar>();
|
||||
@@ -57,7 +59,7 @@ namespace Continentis.MainGame.UI
|
||||
{
|
||||
LeanPool.Despawn(currentAvatar.gameObject);
|
||||
}).Play();
|
||||
|
||||
|
||||
// 播放重新排列动画
|
||||
RearrangePortraitsWithAnimation();
|
||||
}
|
||||
@@ -69,7 +71,7 @@ namespace Continentis.MainGame.UI
|
||||
// 核心函数:创建单个头像UI
|
||||
private CharacterAvatar CreatePortraitUI(CharacterBase character, int index)
|
||||
{
|
||||
CharacterAvatar avatar = LeanPool.Spawn(portraitPrefab, portraitsContainer).GetComponent<CharacterAvatar>();
|
||||
CharacterAvatar avatar = LeanPool.Spawn(portraitPrefab, avatarContainer).GetComponent<CharacterAvatar>();
|
||||
avatar.Initialize(character);
|
||||
avatar.GetComponent<RectTransform>().anchoredPosition = new Vector2(-900, 0);
|
||||
if (index >= 0 && index < avatars.Count)
|
||||
@@ -81,6 +83,7 @@ namespace Continentis.MainGame.UI
|
||||
{
|
||||
avatars.Add(avatar);
|
||||
}
|
||||
|
||||
return avatar;
|
||||
}
|
||||
|
||||
@@ -89,7 +92,7 @@ namespace Continentis.MainGame.UI
|
||||
{
|
||||
for (int i = 0; i < avatars.Count; i++)
|
||||
{
|
||||
float targetX = -110 - i * (portraitWidth + portraitSpacing);
|
||||
float targetX = -110 - i * (avatarWidth + avatarSpacing);
|
||||
avatars[i].GetComponent<RectTransform>().anchoredPosition = new Vector2(targetX, 0);
|
||||
}
|
||||
}
|
||||
@@ -102,7 +105,7 @@ namespace Continentis.MainGame.UI
|
||||
for (int i = 0; i < avatars.Count; i++)
|
||||
{
|
||||
// 计算每个头像的目标X坐标
|
||||
float targetX = -110 - i * (portraitWidth + portraitSpacing);
|
||||
float targetX = -110 - i * (avatarWidth + avatarSpacing);
|
||||
RectTransform rt = avatars[i].GetComponent<RectTransform>();
|
||||
|
||||
// 将移动动画加入到序列中
|
||||
|
||||
Reference in New Issue
Block a user