protected static string GetHitNodeName(HitbyBuilding HitBy) { if (HitBy == HitbyBuilding.HitByBuild1501) { return("HitByBuild1501"); } else if (HitBy == HitbyBuilding.HitByBuild1502) { return("HitByBuild1502"); } else if (HitBy == HitbyBuilding.HitByBuild1503) { return("HitByBuild1503"); } else if (HitBy == HitbyBuilding.HitByBuild1504) { return("HitByBuild1504"); } else if (HitBy == HitbyBuilding.HitByBuild1504) { return("HitByBuild1505"); } else { return(""); } }
/// <summary> /// 受建筑物攻击表现效果 /// </summary> /// <param name="HitBy">受击类型</param> /// <param name="state">受击状态,true 开始, false 结束</param> /// <param name="step">受击步骤</param> public void HitByBuildingEffect(HitbyBuilding HitBy, bool state, int step, HitEffectMode Mode, HitEffectHook pfun) { //if(ProPerty == null) ; string HitNodeName = GetHitNodeName(HitBy); Transform HitNode = FindHitGameObject(HitNodeName); if (HitNode == null) { Debug.LogError("获取角色受击对象节点失败,请调查角色预制受击节点配置 " + HitBy + ", " + Mode + "," + m_SkinOwner); return; } string name = step.ToString(); Transform effect = HitNode.Find(name); if (effect == null) { return; } if (Mode == HitEffectMode.CoverBody) { if (state == true) { HitNode.parent = tRoot; SetVisable(false); //tBody.gameObject.SetActive(false); } else { SetVisable(true); //tBody.gameObject.SetActive(true); HitNode.parent = tBody; } } // { if (state == true) { effect.gameObject.SetActive(true); if (pfun != null) { pfun(effect); } } else { effect.gameObject.SetActive(false); } } }