100 lines
2.2 KiB
C#
100 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.U2D.Animation
|
|
{
|
|
[Serializable]
|
|
internal class CharacterGroupCache : SkinningObject, ICharacterOrder
|
|
{
|
|
[SerializeField]
|
|
public int parentGroup;
|
|
[SerializeField]
|
|
bool m_IsVisible = true;
|
|
[SerializeField]
|
|
int m_Order = -1;
|
|
|
|
public bool isVisible
|
|
{
|
|
get => m_IsVisible;
|
|
set
|
|
{
|
|
m_IsVisible = value;
|
|
skinningCache.GroupVisibilityChanged(this);
|
|
}
|
|
}
|
|
|
|
public virtual int order
|
|
{
|
|
get => m_Order;
|
|
set => m_Order = value;
|
|
}
|
|
}
|
|
|
|
internal class CharacterPartCache : TransformCache, ICharacterOrder
|
|
{
|
|
[SerializeField]
|
|
SpriteCache m_Sprite;
|
|
[SerializeField]
|
|
List<BoneCache> m_Bones = new List<BoneCache>();
|
|
[SerializeField]
|
|
bool m_IsVisible = true;
|
|
[SerializeField]
|
|
int m_ParentGroup = -1;
|
|
[SerializeField]
|
|
int m_Order = -1;
|
|
|
|
public virtual int order
|
|
{
|
|
get => m_Order;
|
|
set => m_Order = value;
|
|
}
|
|
|
|
public int parentGroup
|
|
{
|
|
get => m_ParentGroup;
|
|
set => m_ParentGroup = value;
|
|
}
|
|
|
|
public virtual bool isVisible
|
|
{
|
|
get => m_IsVisible;
|
|
set
|
|
{
|
|
m_IsVisible = value;
|
|
if (skinningCache != null)
|
|
skinningCache.SpriteVisibilityChanged(this);
|
|
}
|
|
}
|
|
|
|
public int boneCount => m_Bones.Count;
|
|
|
|
public virtual SpriteCache sprite
|
|
{
|
|
get => m_Sprite;
|
|
set => m_Sprite = value;
|
|
}
|
|
|
|
public virtual BoneCache[] bones
|
|
{
|
|
get => m_Bones.ToArray();
|
|
set => m_Bones = new List<BoneCache>(value);
|
|
}
|
|
|
|
public BoneCache GetBone(int index)
|
|
{
|
|
return m_Bones[index];
|
|
}
|
|
|
|
public int IndexOf(BoneCache bone)
|
|
{
|
|
return m_Bones.IndexOf(bone);
|
|
}
|
|
|
|
public bool Contains(BoneCache bone)
|
|
{
|
|
return m_Bones.Contains(bone);
|
|
}
|
|
}
|
|
}
|