summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/UnitDetail.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/UnitDetail.cs')
-rw-r--r--Assets/Scripts/Unit/UnitDetail.cs117
1 files changed, 117 insertions, 0 deletions
diff --git a/Assets/Scripts/Unit/UnitDetail.cs b/Assets/Scripts/Unit/UnitDetail.cs
new file mode 100644
index 00000000..30a98c63
--- /dev/null
+++ b/Assets/Scripts/Unit/UnitDetail.cs
@@ -0,0 +1,117 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public enum EUnitBone
+{
+ Hips = 0, // 盆骨
+ Spine , // 脊柱
+ Chest , // 胸腔
+ UpperChest , //
+ Neck ,
+ Head ,
+ LEye ,
+ REye ,
+ Jaw ,
+
+ LShoulder = 20,
+ LUpperArm,
+ LLowerArm,
+ LHand,
+ LFinger00,
+ LFinger01,
+ LFinger02,
+ LFinger10,
+ LFinger11,
+ LFinger12,
+ LFinger20,
+ LFinger21,
+ LFinger22,
+ LFinger30,
+ LFinger31,
+ LFinger32,
+ LFinger40,
+ LFinger41,
+ LFinger42,
+
+ RShoulder = 40,
+ RUpperArm,
+ RLowerArm,
+ RHand,
+ RFinger00,
+ RFinger01,
+ RFinger02,
+ RFinger10,
+ RFinger11,
+ RFinger12,
+ RFinger20,
+ RFinger21,
+ RFinger22,
+ RFinger30,
+ RFinger31,
+ RFinger32,
+ RFinger40,
+ RFinger41,
+ RFinger42,
+
+ LUpperLeg = 60, // 大腿
+ LLowerLeg, // 小腿肚
+ LFoot, // 左脚
+ LToes, // 脚趾
+ LToe0, // 脚趾0
+ LToe1, // 脚趾1
+ LToe2, // 脚趾2
+ LToe3, // 脚趾3
+ LToe4, // 脚趾4
+
+ RUpperLeg = 80, // 大腿
+ RLowerLeg, // 小腿肚
+ RFoot, // 左脚
+ RToes, // 脚趾
+ RToe0, // 脚趾0
+ RToe1, // 脚趾1
+ RToe2, // 脚趾2
+ RToe3, // 脚趾3
+ RToe4, // 脚趾4
+
+}
+
+[Serializable]
+public class UnitBoneDictionary : SerializableDictionary<EUnitBone, Transform> { }
+
+// 角色的prefab附加数据
+// * afterimage的prefab
+// * 骨骼映射
+// * 武器
+[DisallowMultipleComponent]
+public class UnitDetail : MonoBehaviour
+{
+ [Tooltip("残影用的prefab")]
+ public string afterImageAvatarPath;
+
+ public UnitBoneDictionary bones;
+
+ //[ExecuteInEditMode]
+ public UnitDetail()
+ {
+ bones = new UnitBoneDictionary();
+ foreach(EUnitBone e in Enum.GetValues(typeof(EUnitBone)))
+ {
+ bones.Add(e, null);
+ }
+ }
+
+ public Transform GetBone(EUnitBone bone)
+ {
+ if (bones.ContainsKey(bone))
+ return bones[bone];
+ return null;
+ }
+
+ public bool HasBone(EUnitBone bone)
+ {
+ return bones.ContainsKey(bone);
+ }
+
+} \ No newline at end of file