public string GetBindPathByName(int id, string szName) { Tab_EffectPoint tabEffectPoint = TableManager.GetEffectPointByID(id, 0); if (tabEffectPoint == null) { return(""); } //身体中心点 switch (szName) { case GlobeVar.EFFECT_BIND_POINT_HEAD: return(tabEffectPoint.HeadPointPath); case GlobeVar.EFFECT_BIND_POINT_LHAND: return(tabEffectPoint.LHandPointPath); case GlobeVar.EFFECT_BIND_POINT_RHAND: return(tabEffectPoint.RHandPointPath); case GlobeVar.EFFECT_BIND_POINT_LFOOT: return(tabEffectPoint.LFootPointPath); case GlobeVar.EFFECT_BIND_POINT_RFOOT: return(tabEffectPoint.RFootPointPath); case GlobeVar.EFFECT_BIND_POINT_HEADTOP: return(tabEffectPoint.HeadTopPointPath); case GlobeVar.EFFECT_BIND_POINT_LSHOULDER: return(tabEffectPoint.LShoulderPointPath); case GlobeVar.EFFECT_BIND_POINT_RSHOULDER: return(tabEffectPoint.RShoulderPointPath); case GlobeVar.EFFECT_BIND_POINT_RHANDBACK: return(tabEffectPoint.RHandBackPointPath); case GlobeVar.EFFECT_BIND_POINT_LHANDBACK: return(tabEffectPoint.LHandBackPointPath); case GlobeVar.EFFECT_BIND_POINT_TAIL: return(tabEffectPoint.TailPointPath); case GlobeVar.EFFECT_BIND_POINT_ADDONS: return(tabEffectPoint.AddOnsItem); case GlobeVar.EFFECT_BIND_POINT_SPECIALWEAPON: return(tabEffectPoint.SpecialWeaponPoint); default: return(""); } }
public override void InitBindPointInfo() { m_effectBindPointCache.Clear(); base.InitBindPointInfo(); if (m_EffectHolder != null) { Tab_CharModel _CharModelInfo = TableManager.GetCharModelByID(m_EffectHolder.ModelID, 0); if (_CharModelInfo != null && _CharModelInfo.ModelType != -1) { Tab_EffectPoint _EffectPointInfo = TableManager.GetEffectPointByID(_CharModelInfo.ModelType, 0); if (_EffectPointInfo != null) { string path_prefix = ""; // 路径的前缀,用来处理乘骑的情况 do { int mountid = -1; if (m_EffectHolder == null) { break; // 如果是空,则跳出 } if (m_EffectHolder.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer op = m_EffectHolder as Obj_OtherPlayer; if (op == null) { break; } if (op.MountID > 0 && op.MountObj != null) { mountid = op.MountID; } } else if (m_EffectHolder.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer mp = m_EffectHolder as Obj_MainPlayer; if (mp == null) { break; } if (mp.MountID > 0 && mp.MountObj != null) { mountid = mp.MountID; } } if (mountid == -1) { break; // 没有找到相应的乘骑 } Tab_MountBase MountBase = TableManager.GetMountBaseByID(mountid, 0); if (null == MountBase) { LogModule.DebugLog("MountBase.txt has not Line ID=" + mountid); break; } Tab_CharMount MountTable = TableManager.GetCharMountByID(MountBase.ModelID, 0); if (MountTable == null) { LogModule.DebugLog("CharMount.txt has not Line ID=" + MountBase.ModelID); break; } path_prefix = "Model" + MountTable.BindPoint + "/MountPlayer/"; } while (false); //身体中心点 Transform effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.CenterPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_CENTER, effectPointBone.gameObject); } //base节点 if (m_BaseEffectBindPoint != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_BASE, m_BaseEffectBindPoint.gameObject); } //头节点 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.HeadPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_HEAD, effectPointBone.gameObject); } //左手(左前足)节点 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.LHandPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LHAND, effectPointBone.gameObject); } //右手(右前足)节点 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.RHandPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RHAND, effectPointBone.gameObject); } //左脚(左后足)节点 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.LFootPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LFOOT, effectPointBone.gameObject); } //右脚(右后足)节点 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.RFootPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RFOOT, effectPointBone.gameObject); } //头顶 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.HeadTopPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_HEADTOP, effectPointBone.gameObject); } //左肩 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.LShoulderPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LSHOULDER, effectPointBone.gameObject); } //右肩 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.RShoulderPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RSHOULDER, effectPointBone.gameObject); } //右手手背 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.RHandBackPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RHANDBACK, effectPointBone.gameObject); } //左手手背 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.LHandBackPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LHANDBACK, effectPointBone.gameObject); } //尾饰 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.TailPointPath); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_TAIL, effectPointBone.gameObject); } //附加物 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.AddOnsItem); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_ADDONS, effectPointBone.gameObject); } //特殊 effectPointBone = m_EffectGameObj.transform.Find(path_prefix + _EffectPointInfo.SpecialWeaponPoint); if (effectPointBone != null) { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_SPECIALWEAPON, effectPointBone.gameObject); } } } } }