mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 11:24:46 +00:00
57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
|
using System;
|
|||
|
using System.Linq;
|
|||
|
using Sirenix.OdinInspector;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace GAS.Runtime
|
|||
|
{
|
|||
|
[Serializable]
|
|||
|
public struct GameplayEffectSpecifiedSnapshotConfig
|
|||
|
{
|
|||
|
public enum ESnapshotTarget
|
|||
|
{
|
|||
|
[LabelText("施法者", SdfIconType.Magic)]
|
|||
|
Source,
|
|||
|
|
|||
|
[LabelText("持有者", SdfIconType.Person)]
|
|||
|
Target
|
|||
|
}
|
|||
|
|
|||
|
private const int LABEL_WIDTH = 70;
|
|||
|
|
|||
|
[LabelText("目标", SdfIconType.PersonBadge)]
|
|||
|
[LabelWidth(LABEL_WIDTH)]
|
|||
|
[EnumToggleButtons]
|
|||
|
public ESnapshotTarget SnapshotTarget;
|
|||
|
|
|||
|
[LabelText("属性", SdfIconType.Fingerprint)]
|
|||
|
[LabelWidth(LABEL_WIDTH)]
|
|||
|
[OnValueChanged("OnAttributeChanged")]
|
|||
|
[ValueDropdown("@ValueDropdownHelper.AttributeChoices", IsUniqueList = true)]
|
|||
|
[ValidateInput("@AttributeValidator.IsValidAttributeName($value)", "属性名无效")]
|
|||
|
public string AttributeName;
|
|||
|
|
|||
|
[HideInInspector]
|
|||
|
public string AttributeSetName;
|
|||
|
|
|||
|
[HideInInspector]
|
|||
|
public string AttributeShortName;
|
|||
|
|
|||
|
public GameplayEffectSpecifiedSnapshotConfig(ESnapshotTarget snapshotTarget, string attributeName)
|
|||
|
{
|
|||
|
SnapshotTarget = snapshotTarget;
|
|||
|
AttributeName = attributeName;
|
|||
|
AttributeSetName = string.Empty;
|
|||
|
AttributeShortName = string.Empty;
|
|||
|
|
|||
|
OnAttributeChanged();
|
|||
|
}
|
|||
|
|
|||
|
private void OnAttributeChanged()
|
|||
|
{
|
|||
|
var split = AttributeName.Split('.');
|
|||
|
AttributeSetName = split[0];
|
|||
|
AttributeShortName = split[1];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|