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 { } // 角色的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); } }