Skip to content

Commit

Permalink
feat: SkinPartsAttribute ルートタイプの指定を不要にした
Browse files Browse the repository at this point in the history
  • Loading branch information
pspkurara committed Sep 9, 2020
1 parent 4cc0254 commit b7226c3
Show file tree
Hide file tree
Showing 16 changed files with 25 additions and 25 deletions.
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/AnimationSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.AnimationSample, typeof(AnimationSample), typeof(Logic))]
[SkinParts(SkinPartsType.AnimationSample, typeof(Logic))]
public static class AnimationSample
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.BaseMeshEffectEnable, typeof(BaseMeshEffectEnable), typeof(Logic))]
[SkinParts(SkinPartsType.BaseMeshEffectEnable, typeof(Logic))]
public static class BaseMeshEffectEnable
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.CanvasGroupAlpha, typeof(CanvasGroupAlpha), typeof(Logic))]
[SkinParts(SkinPartsType.CanvasGroupAlpha, typeof(Logic))]
public static class CanvasGroupAlpha
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/GraphicColor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.GraphicColor, typeof(GraphicColor), typeof(Logic))]
[SkinParts(SkinPartsType.GraphicColor, typeof(Logic))]

public static class GraphicColor
{
Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/GraphicEnable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.GraphicEnable, typeof(GraphicEnable), typeof(Logic))]
[SkinParts(SkinPartsType.GraphicEnable, typeof(Logic))]
public static class GraphicEnable
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/GraphicMaterial.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.GraphicMaterial, typeof(GraphicMaterial), typeof(Logic))]
[SkinParts(SkinPartsType.GraphicMaterial, typeof(Logic))]
public static class GraphicMaterial
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/ImageSprite.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.ImageSprite, typeof(ImageSprite), typeof(Logic))]
[SkinParts(SkinPartsType.ImageSprite, typeof(Logic))]
public static class ImageSprite
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.ObjectsSetActives, typeof(ObjectSetActives), typeof(Logic))]
[SkinParts(SkinPartsType.ObjectsSetActives, typeof(Logic))]
public static class ObjectSetActives
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/OutlineColor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.OutlineColor, typeof(OutlineColor), typeof(Logic))]
[SkinParts(SkinPartsType.OutlineColor, typeof(Logic))]
public static class OutlineColor
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/RawImageTexture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.RawImageTexture, typeof(RawImageTexture), typeof(Logic))]
[SkinParts(SkinPartsType.RawImageTexture, typeof(Logic))]
public static class RawImageTexture
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/ScriptableLogic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.ScriptableLogic, typeof(ScriptableLogic), typeof(Logic))]
[SkinParts(SkinPartsType.ScriptableLogic, typeof(Logic))]
public static class ScriptableLogic
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/ShadowColor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.ShadowColor, typeof(ShadowColor), typeof(Logic))]
[SkinParts(SkinPartsType.ShadowColor, typeof(Logic))]
public static class ShadowColor
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.TransformRotation, typeof(TransformRotation), typeof(Logic))]
[SkinParts(SkinPartsType.TransformRotation, typeof(Logic))]
public static class TransformRotation
{

Expand Down
2 changes: 1 addition & 1 deletion Packages/uGUI-Skinner/Runtime/SkinParts/TransformScale.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Pspkurara.UI.Skinner
{

[SkinParts(SkinPartsType.TransformScale, typeof(TransformScale), typeof(Logic))]
[SkinParts(SkinPartsType.TransformScale, typeof(Logic))]
public static class TransformScale
{

Expand Down
15 changes: 9 additions & 6 deletions Packages/uGUI-Skinner/Runtime/SkinPartsAccess.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@ internal static class SkinPartsAccess

/// <summary>
/// スキンパーツのIDとクラスを紐付ける一覧
/// キー: スキンパーツID ( <see cref="SkinPartsType"/>が使われる )
/// 値 (キー) : 親の型 ( ルートタイプ )
/// 値 (値) : ルートタイプのクラスに紐付けられた<see cref="SkinPartsAttribute"/>属性
/// </summary>
private static readonly Dictionary<int, SkinPartsAttribute> m_SkinParts = CreateSkinPartsList();
private static readonly Dictionary<int, KeyValuePair<Type, SkinPartsAttribute>> m_SkinParts = CreateSkinPartsList();

/// <summary>
/// スキンパーツIDがおかしいときに返すダミー処理
Expand All @@ -31,12 +34,12 @@ internal static class SkinPartsAccess
/// <summary>
/// 該当属性を持つスキンパーツクラスを全取得してリストアップ
/// </summary>
private static Dictionary<int, SkinPartsAttribute> CreateSkinPartsList()
private static Dictionary<int, KeyValuePair<Type, SkinPartsAttribute>> CreateSkinPartsList()
{
return typeof(SkinPartsAccess).Assembly.GetTypes()
.Where(t => t.GetCustomAttribute<SkinPartsAttribute>() != null)
.Select(t => t.GetCustomAttribute<SkinPartsAttribute>())
.ToDictionary(a => a.Id, a => a);
.Select(t => new KeyValuePair<Type, SkinPartsAttribute>(t, t.GetCustomAttribute<SkinPartsAttribute>()))
.ToDictionary(a => a.Value.Id, a => a);
}

/// <summary>
Expand All @@ -51,7 +54,7 @@ public static ISkinLogic CreateSkinLogicInstance(int id)
{
return m_DoNothingLogic;
}
return (ISkinLogic)Activator.CreateInstance(m_SkinParts[id].LogicType);
return (ISkinLogic)Activator.CreateInstance(m_SkinParts[id].Value.LogicType);
}

/// <summary>
Expand All @@ -70,7 +73,7 @@ public static int[] GetAllSkinPartsIds()
/// <returns>スキンパーツクラスの型</returns>
public static Type GetSkinPartsRootType(int id)
{
return m_SkinParts[id].RootType;
return m_SkinParts[id].Key;
}

/// <summary>
Expand Down
7 changes: 2 additions & 5 deletions Packages/uGUI-Skinner/Runtime/SkinPartsAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,16 @@ namespace Pspkurara.UI.Skinner
public sealed class SkinPartsAttribute : Attribute
{

public SkinPartsAttribute(int id, Type rootType, Type logicType)
public SkinPartsAttribute(int id, Type logicType)
{
Id = id;
RootType = rootType;
LogicType = logicType;
}

public SkinPartsAttribute(SkinPartsType partsType, Type rootType, Type logicType) : this((int)partsType, rootType, logicType) { }
public SkinPartsAttribute(SkinPartsType partsType, Type logicType) : this((int)partsType, logicType) { }

public int Id;

public Type RootType;

public Type LogicType;

}
Expand Down

0 comments on commit b7226c3

Please sign in to comment.