-
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathReplacementRule.cs
More file actions
125 lines (111 loc) · 3.82 KB
/
Copy pathReplacementRule.cs
File metadata and controls
125 lines (111 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using System;
using UnityEngine;
namespace CopyComponentsByRegex
{
/// <summary>
/// 置換ルールの種類
/// </summary>
public enum RuleType
{
/// <summary>正規表現による置換</summary>
Regex,
/// <summary>HumanoidBoneによる置換</summary>
HumanoidBone
}
/// <summary>
/// HumanoidBoneのグループ
/// </summary>
public enum HumanoidBoneGroup
{
/// <summary>すべてのHumanoidBone</summary>
All,
/// <summary>頭</summary>
Head,
/// <summary>首</summary>
Neck,
/// <summary>胸</summary>
Chest,
/// <summary>脊椎</summary>
Spine,
/// <summary>ヒップ</summary>
Hips,
/// <summary>左腕</summary>
LeftArm,
/// <summary>右腕</summary>
RightArm,
/// <summary>左脚</summary>
LeftLeg,
/// <summary>右脚</summary>
RightLeg,
/// <summary>左手指</summary>
LeftFingers,
/// <summary>右手指</summary>
RightFingers
}
/// <summary>
/// HumanoidBoneの選択モード
/// </summary>
public enum HumanoidBoneSelectionMode
{
/// <summary>ボーングループで選択</summary>
Group,
/// <summary>個別ボーンで選択</summary>
Individual
}
/// <summary>
/// 置換ルールを表すデータ構造
/// 正規表現の置換またはHumanoidBoneのマッピングをサポートする
/// </summary>
[Serializable]
public class ReplacementRule
{
/// <summary>ルールの種類</summary>
public RuleType type = RuleType.Regex;
/// <summary>正規表現パターン(Regexタイプの場合に使用)</summary>
public string srcPattern = "";
/// <summary>置換後のパターン(Regexタイプの場合に使用)</summary>
public string dstPattern = "";
/// <summary>HumanoidBoneグループ(HumanoidBoneタイプの場合に使用)</summary>
public HumanoidBoneGroup boneGroup = HumanoidBoneGroup.All;
/// <summary>HumanoidBoneの選択モード(グループまたは個別)</summary>
public HumanoidBoneSelectionMode boneSelectionMode = HumanoidBoneSelectionMode.Group;
/// <summary>個別のHumanoidBone(Individual選択時に使用)</summary>
public HumanBodyBones singleBone = HumanBodyBones.Hips;
/// <summary>ルールが有効かどうか</summary>
public bool enabled = true;
/// <summary>
/// デフォルトコンストラクタ
/// </summary>
public ReplacementRule() { }
/// <summary>
/// 正規表現ルール用コンストラクタ
/// </summary>
public ReplacementRule(string srcPattern, string dstPattern)
{
this.type = RuleType.Regex;
this.srcPattern = srcPattern;
this.dstPattern = dstPattern;
this.enabled = true;
}
/// <summary>
/// HumanoidBoneルール用コンストラクタ(グループ選択)
/// </summary>
public ReplacementRule(HumanoidBoneGroup boneGroup)
{
this.type = RuleType.HumanoidBone;
this.boneSelectionMode = HumanoidBoneSelectionMode.Group;
this.boneGroup = boneGroup;
this.enabled = true;
}
/// <summary>
/// HumanoidBoneルール用コンストラクタ(個別ボーン選択)
/// </summary>
public ReplacementRule(HumanBodyBones singleBone)
{
this.type = RuleType.HumanoidBone;
this.boneSelectionMode = HumanoidBoneSelectionMode.Individual;
this.singleBone = singleBone;
this.enabled = true;
}
}
}